计数单词输入字段

Count words input field

本文关键字:字段 输入 单词      更新时间:2023-09-26

基本上我需要得到输入字段中的字数。因此,方法是修剪前导和尾随空格,并将字符串中的剩余空格限制为1。这样我就可以得到单词的数量了。下面是我执行此操作的代码。

例如。输入值:

"   Robert   Neil       Cook   " 

预期输出:

3 //"Robert Neil Cook" 

这就是我尝试过的。

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

您可以使用下面的自定义函数来计算单词

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

请尝试以下操作:

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>

您可以使用.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属性。

试试这个代码。。

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

你可以像这个一样更紧凑地使用Haresh Vidja的函数

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

请查看附件中的片段。

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">

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

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