1. ホーム
  2. javascript

[解決済み] Javascriptで文字列中のある文字の出現回数をカウントする

2022-03-15 13:48:28

質問

文字列中のある文字の出現回数を数える必要があります。

例えば、私の文字列が含まれているとします。

var mainStr = "str1,str2,str3,str4";

カンマの数を調べたい , また、カンマで分割された後の個々の文字列の数は4である。

また、各文字列(str1、str2、str3、str4)が、例えば15文字を超えないことを検証する必要があります。

どのように解決するのですか?

この回答を更新しました。私はマッチを使うアイデアの方が好きですが、スピードが遅くなります。

console.log(("str1,str2,str3,str4".match(/,/g) || []).length); //logs 3

console.log(("str1,str2,str3,str4".match(new RegExp("str", "g")) || []).length); //logs 4

検索するものがあらかじめわかっている場合は正規表現リテラルを使用し、わかっていない場合は RegExp コンストラクタに g フラグを引数として与えます。

match が返ってくる null となり、結果が出ないので || []

2009年に作成したオリジナルの回答は以下の通りです。不必要に配列を作成していますが スプリットを使用すると高速になります。 (2014年9月現在)です。私はアンビバレントで、本当にスピードが必要なら間違いなくsplitを使うだろうが、matchを使う方がいいと思う。

古い回答(2009年のもの)です。

カンマを探すなら

(mainStr.split(",").length - 1) //3

もし、あなたがstr

(mainStr.split("str").length - 1) //4

ローさんの回答でも、自分のバカでも パフォーマンステスト 少なくともChromeでは、splitが速度で勝っていますが、やはり余分な配列を作成するのは正気とは思えません。