在计算字符串中的模式时总是得到0的结果

时间:2011-11-04 12:44:47

标签: javascript

每当我输入搜索字词时,我都会得到0的结果。我试图找到模式在字符串中出现的次数。例如,搜索会返回 3 。关于我要去哪里的任何建议?

string =
[
"cat math path"
]

    var pattern = prompt('Please enter a search term:'); 

        function check(string,pattern)
        {

            if(pattern) 
            {
                if(pattern.indexOf(string) == -1) 
                {
                return 0;
                }

                return count(pattern.substring(pattern.indexOf(string)+string.length), string)+1;
            }

            else 
            {
                return("Nothing entered!");
            }
        }

        alert(check(string,pattern));

2 个答案:

答案 0 :(得分:1)

if(pattern.indexOf(string) == -1)

应该是

if(string.indexOf(pattern) == -1)

答案 1 :(得分:0)

我认为你推翻了patternstring的使用。请参阅indexOf的文档。您还可以使用split轻松计算出现次数,这会将您的字符串分成数组:

count=string.split(pattern).length - 1;

string="cat math path";(而不是数组)