0

我试图计算一个句子中的单词总数。我在 Javascript 中使用了以下代码。

function countWords(){
    s = document.getElementById("inputString").value;
    s = s.replace(/(^\s*)|(\s*$)/gi,"");
    s = s.replace(/[ ]{2,}/gi," ");
    s = s.replace(/\n /,"\n");
    alert(s.split(' ').length);
}

因此,如果我提供以下输入,

"Hello world"  -> alerts 2       //fine
"Hello world<space>" -> alerts 3 // supposed to alert 2
"Hello world world" -> alerts 3  //fine

我哪里出错了?

4

4 回答 4

2

在这里你会找到你需要的一切。

http://jsfiddle.net/deepumohanp/jZeKu/

var regex = /\s+/gi;
var wordCount = value.trim().replace(regex, ' ').split(' ').length;
var totalChars = value.length;
var charCount = value.trim().length;
var charCountNoSpace = value.replace(regex, '').length;

$('#wordCount').html(wordCount);
$('#totalChars').html(totalChars);
$('#charCount').html(charCount);
$('#charCountNoSpace').html(charCountNoSpace);
于 2013-05-07T11:18:28.717 回答
0

请试试这个:

var word = "str";
function countWords(word) {
    var s = word.length;
    if (s == "") {
        alert('count is 0')
    }
    else {
        s = s.replace (/\r\n?|\n/g, ' ')
            .replace (/ {2,}/g, ' ')
            .replace (/^ /, '')
            .replace (/ $/, '');
        var q = s.split (' ');
        alert ('total count is: ' + q.length);
    }
}
于 2013-05-07T11:18:36.587 回答
0

' '如果字符串末尾有分隔符(在您的情况下为 ),Split 将拆分事件,从而在[]列表中创建最后一个项目。

于 2013-05-07T11:16:11.367 回答
0

您可以做的是使用该split(" ")函数(包括引号内的空格)将字符串转换为仅由单词​​组成的数组。然后,您可以通过使用它来获取数组的长度,array.length这实际上就是字符串中的单词数。

于 2013-05-07T11:20:41.910 回答