2

文字列の単語数を調べたい

例えば。

 asdsd sdsds sdds 

3ワード

問題は、2 つの部分文字列の間に複数のスペースがある場合、結果が正しくないことです。

ここに私のプログラムがあります

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

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

問題を解決するには?手伝ってくれてありがとう

4

6 に答える 6

3

match単語境界で使用できます:

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

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

于 2013-06-03T06:11:18.190 に答える
2
var parts = str .split(" ");
parts = parts.filter(function(elem, pos, self) {
     return elem !== "";
});

これを試してください。このコードを使用するには、最新のブラウザを使用していることを確認してください。

于 2013-06-03T06:11:07.413 に答える
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;
于 2013-06-03T06:09:30.393 に答える
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;
}
于 2013-06-03T06:11:40.840 に答える
0

さらに短いパターンでは、次のようなものを試してください。

(\S+)

正規表現エンジンによって返される一致の数は、望ましい結果になります。

于 2013-06-03T06:46:55.370 に答える