2016-07-21 10 views
2

基本的には、入力フィールドに単語数を取得する必要があります。したがって、先頭と末尾の空白をトリミングし、文字列内の残りのスペースを1に制限する方法です。これにより、単語の数を取得できるようになります。以下はこれを行うための私のコードです。単語数入力フィールド

など。 入力値:

" Robert Neil  Cook " 

予想される出力:

3 //"Robert Neil Cook" 

これは私が試したものです。

var str = $.trim($('#inval').val()); 
var Fstr = str.split(' ').length; 
console.log(fstr); 
+0

を試してみて、あなたの実際の出力は何ですか? – vaso123

+0

@lolka_bolka:ありがとう、言葉の数を取得する必要があります。 – Becky

+0

はい、表示されますが、 'console.log(fstr);のときに表示されるもの – vaso123

答えて

1

あなたは.match(/\S+/g)を使用することができます。

var str = " Robert Neil  Cook "; 
 
var arr = str.match(/\S+/g); 
 
var newstr = arr.join() 
 
console.log('length::::>', arr.length); 
 
console.log('newstr::::>', newstr);

この.match(/\S+/g)は配列として隙間なくあなたに言葉を返すでしょうし、あなたがlengthプロパティを使用することができますそれの。

+1

正規表現は常に優れています。 @Beckyネイティブでコードライン数が少ない – Jai

+0

私です。変数に代入された 'Robert Neil Cook'を取得する必要がある場合は、もう1つは何ですか? – Becky

+1

あなたはちょうど 'var str = input.value;'に答える必要があります。 – Jai

2

あなたは以下試してみてくださいカウントの単語のためのカスタム関数の下

function countWords(s){ 
     s = s.replace(/(^\s*)|(\s*$)/gi,"");//exclude start and end white-space 
     s = s.replace(/[ ]{2,}/gi," ");//2 or more space to 1 
     s = s.replace(/\n /,"\n"); // exclude newline with a start spacing 
     return s.split(' ').length; 
    } 

    alert(countWords("How are you?")); 
2

を使用することができます..

str= " Robert Neil  Cook " ; 
 
str = $.trim(str.replace(/ +(?=)/g,'')); // replace multiple spaces to single space 
 
console.log(str) 
 
var words = str.split(' '); // count the no of words using .split() method 
 
alert(words.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

+0

ありがとう。 .replace(/ +(?=)/ g、 '') 'すべてのスペースを削除しますか? – Becky

+0

それは今仕事する.check –

0

このコードを試してみてください

var str = $.trim($('#inval').val()); 
var words = str.split(' ').filter(v=>v!='').length; 
+0

ありがとう。 'v'とは何ですか? – Becky

+0

これは単なるラムバ式です。あなたは 'v'の代わりに何かを使うことができます。 – Karthikeyan

0

あなたはこの

function countWords(s){ 
    return s.trim().replace(/[ ]{2,}/gi," ").split(" ").length; 
} 

console.log(countWords("some words here") 
0

ようHaresh Vidjaの機能をよりコンパクトにすることができます見添付スニペットを持ってください。

var str = $.trim($('#inval').val()); 
 
str1 = str.replace(/ +(?=)/g,'') 
 
var fstr = str1.split(' ').length; 
 
console.log(fstr); 
 
console.log(str1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value=" Robert Neil  Cook " id="inval">

0

非常に簡単な解決策、この

var str = " Robert Neil  Cook "; 
str = str.trim(); 
var str = str.split(' ').join(''); 
var fstr = str.split(' ').length; 
console.log(fstr); 
関連する問題