检查一个字符串在javascript中包含多少个单词

检查一个字符串在javascript中包含多少个单词,javascript,regex,string,split,Javascript,Regex,String,Split,我想检查一下字符串中有多少个单词 例如 三个字 问题是,如果两个子字符串之间存在多个空格,则结果不正确 这是我的节目 function trim(s) { return s.replace(/^\s*|\s*$/g,"") } var str = trim(x[0].value); var parts = str .split(" "); alert (parts.length); 如何解决这个问题?感谢您的帮助使用拆分方法很容易找到,但如果有任何特殊字符,您需要进行排序。

我想检查一下字符串中有多少个单词

例如

三个字

问题是,如果两个子字符串之间存在多个空格,则结果不正确

这是我的节目

function trim(s) {   
  return s.replace(/^\s*|\s*$/g,"")   
} 

var str = trim(x[0].value);
var parts = str .split(" ");
alert (parts.length);

如何解决这个问题?感谢您的帮助

使用拆分方法很容易找到,但如果有任何特殊字符,您需要进行排序。如果字符串中没有特殊字符,那么最后一行就足够了

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;

请试试这个。确保您使用的是最新的浏览器来使用此代码。

您只需使用
匹配
与单词边界:

var words = str.match(/\b\w+\b/g);

请使用我在项目中已经使用过的这个: 尝试:


如果是更短的模式,请尝试以下操作:

(\S+)
正则表达式引擎返回的匹配数将是您所期望的结果

var words = str.match(/\b\w+\b/g);
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;
}
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 );
(\S+)