小编典典

计算Javascript中字符串中字符的出现次数

all

我需要计算字符串中某个字符的出现次数。

例如,假设我的字符串包含:

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

我想找到逗号,字符的计数,即 3。以及沿逗号拆分后的单个字符串的计数,即 4。

我还需要验证每个字符串,即 str1 或 str2 或 str3 或 str4 不应超过 15 个字符。


阅读 196

收藏
2022-03-03

共1个答案

小编典典

我已经更新了这个答案。我更喜欢使用匹配的想法,但它更慢:

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
月)。我很矛盾,如果我真的需要速度,毫无疑问我会使用拆分,但我更喜欢使用匹配。

旧答案(从 2009 年开始):

如果您正在寻找逗号:

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

如果您正在寻找 str

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

在@Lo 的回答和我自己的愚蠢性能测试中,速度都领先,至少在
Chrome 中是这样,但再次创建额外的数组似乎并不理智。

2022-03-03