如何统计字符串在另一个字符串中出现的次数?

839

我该如何在一个字符串中统计另一个特定字符串出现的次数?例如,我想在Javascript中实现以下操作:

var temp = "This is a string.";
alert(temp.count("is")); //should output '2'

23
这取决于你是否接受重叠实例,例如:var t = "sss";上述字符串中子串"ss"出现了几次?是1次还是2次?你是跳过每个实例,还是逐个字符地移动指针来寻找子串呢? - Tim
4
这个问题的改进基准:http://jsperf.com/string-ocurrence-split-vs-match/2 (基于Kazzkiq的基准测试)。 - idmean
在 JavaScript 中计算字符串中特定单词的总数 https://stackoverflow.com/a/65036248/4752258 - Farbod Aprin
这个视频似乎与此相关 - “Google编程面试与Facebook软件工程师” - https://www.youtube.com/watch?v=PIeiiceWe_w - Deryck
41个回答

-2

试试这个:

function countString(str, search){
    var count=0;
    var index=str.indexOf(search);
    while(index!=-1){
        count++;
        index=str.indexOf(search,index+1);
    }
    return count;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接