我想查看字符串中有多少单词
例如
asdsd sdsds sdds
3个字
问题是,如果两个子字符串之间有多个空格,则结果不正确
这是我的程序
function trim(s) {
return s.replace(/^\s*|\s*$/g,"")
}
var str = trim(x[0].value);
var parts = str .split(" ");
alert (parts.length);
如何解决问题?谢谢你的帮助
答案 0 :(得分:2)
var parts = str .split(" ");
parts = parts.filter(function(elem, pos, self) {
return elem !== "";
});
请试试这个。确保使用最新的浏览器来使用此代码。
答案 1 :(得分:2)
答案 2 :(得分:1)
使用split方法很容易找到,但是如果有任何特殊字符,则需要进行排序。如果你的字符串中没有特殊字符,那么最后一行就足够了。
s = document.getElementById("inputString").value;
s = s.replace(/(^\s*)|(\s*$)/gi,"");
s = s.replace(/[ ]{2,}/gi," ");
s = s.replace(/\n /,"\n");
document.getElementById("wordcount").value = s.split(' ').length;
答案 3 :(得分:1)
function countWords(){
s = document.getElementById("inputString").value;
s = s.replace(/(^\s*)|(\s*$)/gi,"");
s = s.replace(/[ ]{2,}/gi," ");
s = s.replace(/\n /,"\n");
document.getElementById("wordcount").value = s.split(' ').length;
}
答案 4 :(得分:0)
尝试:
function trim(s) {
return s.replace(/^\s*|\s*$/g,"")
}
var regex = /\s+/gi;
var value = "this ss ";
var wordCount = value.trim().replace(regex, ' ').split(' ').length;
console.log( wordCount );
答案 5 :(得分:0)
更短的模式,尝试这样的事情:
(\S+)
并且正则表达式引擎返回的匹配数将是您想要的结果。