我正试图找出一种有效的方法来为JavaScript中的给定字符串进行字数统计,而不使用正则表达式。
以下适用于某些字符串:
function wordCount(str) {
return str.split(" ").length;
}
console.log(wordCount("howdy there partner"));
然而 - 当给出一个字符串,“这是一个例子”时,字数变为6而不是4.此外,这种方法不适用于空字符串,如“”或“”(将返回字数)分别为1和2)。
在没有使用正则表达式的情况下,有没有办法为这些实例进行准确的字数统计?
答案 0 :(得分:5)
只需filter空白值:
function wordCount(str) {
return str.split(' ').filter(function(val){ return val != '' }).length
}
答案 1 :(得分:2)
如果您愿意放宽使用正则表达式的限制,可以直接执行此操作,而无需使用split
:
sentence.match(/\w+/g).length
这意味着匹配任何字符序列(\w
)的长度为一个或多个(+
),全局(g
)。它将返回一个匹配数组,其长度将给出单词数。
为了防止字符串中没有单词且match
将返回null
的情况,您应该写一下:
(sentence.match(/\w+/g) || []).length
仍然比替代
短几个字符sentence.split(' ').filter(Boolean).length
如果你担心这些事情。
答案 2 :(得分:0)
function wordCount(str) {
return str.trim().split(" ").length;
}
console.log(wordCount("howdy there partner"));