Javascript 如何通过jquery计算textarea中的单词数并返回该值

Javascript 如何通过jquery计算textarea中的单词数并返回该值,javascript,jquery,html,textarea,Javascript,Jquery,Html,Textarea,此函数始终返回0? 请提供帮助。您可以在空格上拆分textarea值,然后在其中获取单词长度。 试试这个: function count(){ var val = $.trim($('textarea').val()), words = val.replace(/\s+/gi, ' ').split(' ').length, chars = val.length; if(!chars)words=0; return words; } 为什么这是一

此函数始终返回0?
请提供帮助。

您可以在空格上拆分textarea值,然后在其中获取单词长度。 试试这个:

function count(){  
  var val   = $.trim($('textarea').val()),  
      words = val.replace(/\s+/gi, ' ').split(' ').length,
      chars = val.length;
  if(!chars)words=0;

 return words;
}

为什么这是一种改进?“试试这个”并不能解释任何事情。@Dexpras已经在空间上分裂了,但是他的版本比你的版本好,因为它修剪并去除了相邻的空间spaces@cookiemonster是的,但问题是它不是那样工作的。@Dexpras:是的,它确实工作。我将您的确切代码复制到了一个演示中,并将其发布在您问题下方的评论中。这个答案是原始代码的一个更糟糕的版本。我不知道人们为什么会对它投上更高的票。这在很多情况下都不准确,比如前导空格、尾随空格、两个单词之间的多个空格。可能会对你有帮助@Satpal谢谢,我认为下面的答案更有用。你的字数。你为什么认为有问题?谢谢,但我认为循环是没有必要的。
var words = $('textarea').val().split(' ');
alert(words.length);//or return words.length;
text_area = $('textarea').val();
text_area.length == 0 ? 0 : text_area.trim().split(/\s+\b/).length