javascript 配列内の記号がいくつあるか数える方法(match)
例)
symbols = [@//@/@//];
の時、
countAt = 3;
countSlash = 5;
という結果を出します。
方法
match関数を使うことで、簡単にできます。
書き方
let countAt = (symbols[0].match(/@/g)).length;
let countSlash = (symbols[0].match(/\//g)).length;
match関数とは
match()関数 は、指定した文字列の中から、正規表現に一致する部分を検索して配列で返す関数です。
match(/@/g)の意味は?
/は、正規表現のメタ文字です。/ /に囲まれた記号にマッチします。
そのため、/で囲まれた@を探します。
gは、グローバルマッチと呼ばれるオプションです。
gを除くと、最初の@にマッチすると終了してしまう為、1という結果になります。
match(/\//g)の、\は、なんで必要なの?
/の記号を数えようとしても、正規表現のメタ記号なので、うまく数えることができません。そのため、/はメタ記号ではないということを示すために、\を書きます。これをエスケープすると言ったりします。
最後まで、見ていただきありがとうございました。