如何使用JQuery在JavaScript中计算单词

我有一个简单的html文本框。 当我“提交”文本框所在的表单时,我想使用Jquery获取一个包含内部单词数量的变量。 我还想检查输入的文本是否只是字母,数字和连字符(也在jquery中)。 我不需要在用户输入时计算单词,只需提交表单即可。 如果关闭jquery,表单将不会提交,所以我猜不使用php没有安全风险。 这是真的?

HTML:

  

JQUERY(尝试):

 var wordcount = $('#name').val() // i don't know how to count the words 

您将拆分字符串,然后计算结果数组的长度。

 $('input[type="submit"]').click( function() { var words = $('#name').val().split(' '); alert(words.length); }); 

其他答案略有改进,因为处理更多边缘案例。 即一起使用多个空格和标点符号,并在文本的开头和结尾处理正确的标点符号。

 var numOfWords = $('#name').val().replace(/^[\s,.;]+/, "").replace(/[\s,.;]+$/, "").split(/[\s,.;]+/).length; 

它首先删除文本开头和结尾处的任何标点符号和空格,然后计算剩下的内容。 显然,如果需要,可以添加更多标点符号(如感叹号)。

从字符串的开头和结尾删除空格是非常有用的。 $.trim() 。 您可以使用keyup事件进行实时计数。

 $('#name').keyup(function(){ var words = $.trim($(this).val()).split(' '); console.log(words.length); }); 

您可以指定多个字符来拆分源字符串:

 $('input[type="submit"]').click( function() { var words = $('#name').val().split(/[\s\.,;]+/); console.log(words.length); }); 
 var str = $('#name').val(), count = str.split(' ').length; 

假设每个单词都被一个空格分开

使用下面的正则表达式允许我们删除任何类型的空格(单个或多个),以便计数非常准确。

 $('#name').keyup(function(){ var wordCount = $(this).val().split(/[\s\.\?]+/).length; console.log(wordCount); }); 

看看我开发的这个jQuery插件:

https://github.com/mcdesignpro/maxLenght

尝试使用JQuery计算JavaScript中的单词。

 $(document).ready(function(){ $("button").click(function(){ var words = $.trim($("#name").val()).split(" "); alert(words.length); }); }); 

使用JQuery在JavaScript中查看更多@ Count单词