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)の、\は、なんで必要なの?

/の記号を数えようとしても、正規表現のメタ記号なので、うまく数えることができません。そのため、/はメタ記号ではないということを示すために、\を書きます。これをエスケープすると言ったりします。


最後まで、見ていただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?