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

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

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

var mainStr=“str1、str2、str3、str4”;

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

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

我已经更新了这个答案。我更喜欢使用火柴,但速度较慢:

console.log(((“str1、str2、str3、str4.match(/,/g)| |[])length)//日志3
log(((“str1,str2,str3,str4.match(新的RegExp(“str”,“g”)))| |[])长度)//日志4

如果事先知道要搜索的内容,请使用正则表达式文字;如果不知道,则可以使用RegExp构造函数,并将g标志作为参数传递

match返回null而没有结果,因此| |[]

我在2009年给出的最初答案如下。它不必要地创建了一个数组,但是使用拆分更快(截至2014年9月)。我很矛盾,如果我真的需要速度,毫无疑问我会使用分割,但我更喜欢使用匹配

旧答案(2009年起):

如果您正在查找逗号:

(主干拆分(",").length-1)//3

如果你在找str

(主体拆分("str").length-1)//4

在@Lo的回答和我自己愚蠢的jsperf测试中,至少在Chrome中,split在速度上领先,但再次创建额外的数组似乎并不明智

发表评论