检查javascript中包含多少单词的字符串

Check a string contain how many word in javascript

本文关键字:单词 字符串 多少 包含 javascript 检查      更新时间:2023-09-26

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

例如。

 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);

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

您可以使用带有单词边界的match

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

http://jsbin.com/abeluf/1/edit

var parts = str .split(" ");
parts = parts.filter(function(elem, pos, self) {
     return elem !== "";
});

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

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

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;
}

使用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;

try:

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+)

regex引擎返回的匹配数将是您想要的结果。