簡體   English   中英

檢查一個字符串,其中包含多少個單詞

[英]Check a string contain how many word in javascript

我想檢查一個字符串中有多少個單詞

例如。

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

如何解決問題? 感謝幫助

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

請嘗試這個。 確保您使用的是最新的瀏覽器以使用此代碼。

您可以只使用單詞邊界match

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

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

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

請使用這個它已經在我的項目中被我使用了:

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

而正則表達式引擎返回的匹配數將是您想要的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM