如何计算句子中字符串出现次数时的标点符号和大写字母

时间:2016-09-02 17:20:44

标签: javascript string function split

我正在编写一个函数,但无法弄清楚如何计算大写字母和标点符号。

我的功能是:

function countWords(word, string) {
    var subStr = string.split(word);
    return subStr.length - 1;
}

当我尝试使用wordCount进行测试时它起作用("嘿","这是代码嘿")但是如果我尝试则不行(" HEY&#34 ;,"这是代码嘿")

我试过

var subStr= string.toUpperCase().split(word) 

但它不再适用于小写字母。

4 个答案:

答案 0 :(得分:0)

为什么你不能这样做。

function countWords(word, string) {
    word= word.toLowerCase();
    string=string.toLowerCase();
    var subStr = string.split(word);
    return subStr.length - 1;
}

因此,无论我们发送的任何值是否会转换为小写,它都会分裂。 这有道理吗?

答案 1 :(得分:0)

试试这个:

function countWords(word, string) {
    var subStr = string.toLowerCase().split(word.toLowerCase());
    return subStr.length - 1;
}
$(document).ready(function(){
  $('#result').html(countWords("HEY","this is code hey"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="result"></div>

答案 2 :(得分:0)

首先尝试将参数发送到所有大写或小写,以便它与您要比较的字符串的大小写匹配。例如,

function countWords(word.toLowerCase, string.toLowerCase) 

无论如何,都会评估搜索。

答案 3 :(得分:0)

你可以使用带有ig修饰符的正则表达式(不区分大小写/匹配所有)并匹配,然后返回长度:

function wordCount(search, txt) {
    var regex = new RegExp("\\W" + search + "\\W|\\W" + search, "ig");
  var match = txt.match(regex);
  return match ? match.length : 0;
}

console.log(wordCount("hey","this is code heyHey HEY hey")); // 2

如果您想将heyHey作为2个匹配项,只需从正则表达式中删除|\\W" + search

相关问题