计算单词输入字段

时间:2016-07-21 10:39:30

标签: javascript jquery

基本上我需要在输入字段中获取单词数。因此,方法是修剪前导和尾随空格,并将字符串中的剩余空间限制为1.这样我就能获得单词数。以下是我的代码。

E.g。 输入值:

"   Robert   Neil       Cook   " 

预期产出:

3 //"Robert Neil Cook" 

这就是我的尝试。

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

7 个答案:

答案 0 :(得分: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?"));

答案 1 :(得分: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>

答案 2 :(得分:1)

您可以使用.match(/\S+/g)

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

这个.match(/\S+/g)会返回没有任何空格的单词作为数组,你可以使用它的length属性。

答案 3 :(得分:0)

试试这段代码..

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

答案 4 :(得分:0)

你可以像这样使用Haresh Vidja的功能更紧凑

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

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

答案 5 :(得分:0)

请看一下附件摘录。

&#13;
&#13;
var str = $.trim( $('#inval').val() );
str1 = str.replace(/ +(?= )/g,'')
var fstr = str1.split(' ').length;
console.log(fstr);
console.log(str1);
&#13;
<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">
&#13;
&#13;
&#13;

答案 6 :(得分:0)

非常简单的解决方案,试试这个

var str = "   Robert   Neil       Cook   ";
str = str.trim();
var str = str.split('  ').join('');
var fstr = str.split(' ').length;
console.log(fstr);