我需要计算字符串中某个字符的出现次数。
例如,假设我的字符串包含:
var mainStr = "str1,str2,str3,str4";
我想找到逗号,字符的计数,即 3。以及沿逗号拆分后的单个字符串的计数,即 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标志作为参数传递。
RegExp
g
match返回null没有结果,因此|| []
match
null
|| []
我在 2009 年做出的原始答案如下。它不必要地创建了一个数组,但 使用拆分更快 (截至 2014 年 9 月)。我很矛盾,如果我真的需要速度,毫无疑问我会使用拆分,但我更喜欢使用匹配。
旧答案(从 2009 年开始):
如果您正在寻找逗号:
(mainStr.split(",").length - 1) //3
如果您正在寻找 str
(mainStr.split("str").length - 1) //4
在@Lo 的回答和我自己的愚蠢性能测试中,速度都领先,至少在 Chrome 中是这样,但再次创建额外的数组似乎并不理智。