基本上我需要在输入字段中获取单词数。因此,方法是修剪前导和尾随空格,并将字符串中的剩余空间限制为1.这样我就能获得单词数。以下是我的代码。
E.g。 输入值:
" Robert Neil Cook "
预期产出:
3 //"Robert Neil Cook"
这就是我的尝试。
var str = $.trim( $('#inval').val() );
var Fstr = str.split(' ').length;
console.log(fstr);
答案 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)
:
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;
这个.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)
请看一下附件摘录。
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;
答案 6 :(得分:0)
非常简单的解决方案,试试这个
var str = " Robert Neil Cook ";
str = str.trim();
var str = str.split(' ').join('');
var fstr = str.split(' ').length;
console.log(fstr);