例如 count(“好”,“ o”) 结果:2
我并不是想让它变快,我只需要简单易用的东西。
答案 0 :(得分:0)
您可以使用match
查找字符串中某个字符的出现并创建匹配项的数组。使用.length
会告诉您有多少。 'g'
中的RegExp
标志用于匹配所有事件,而不仅是第一个。
function count(str, find) {
return (str.match(RegExp(find,'g')) || []).length
}
count("Good", "o");
如果您要查找的字符是特殊的RegExp
字符,例如RegExp
,.
,|
,则上述+
解决方案不起作用等
以下是不使用RegExp
(也可能更快)的替代解决方案:
function count(str, find) {
return (str.split(find)).length - 1;
}
count("Good", "o");
此函数在每次出现字符时将字符串拆分为一个数组。 (例如,Good
变成['G','','d']
)。此数组的大小始终比出现次数大一,因为它包括两端。因此,您可以获得此数组的长度并减去1。