9

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

HTML:

<input type='text' name='name' id='name' />
<input type='button' value='Sign Up' id='signUp'>

JQUERY(尝试):

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

8 回答 8

21

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

$('input[type="submit"]').click( function() {
    var words = $('#name').val().split(' ');
    alert(words.length);
});
于 2012-01-06T03:03:53.577 回答
8

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

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

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

于 2014-02-05T23:06:08.733 回答
3

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

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

请参阅我开发的这个 jQuery 插件:

https://github.com/mcdesignpro/maxLenght

于 2017-05-30T10:43:54.063 回答
3

split()您可以使用 JavaScript方法计算字符串中的单词数。此方法只是通过指定字符(即空格“”)将字符串拆分为子字符串数组。然后显示'words'数组的长度。

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

这是一个示例:如何使用 JQuery 计算单词

于 2021-01-14T13:30:44.757 回答
2

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

$('#name').keyup(function(){
    var words = $.trim($(this).val()).split(' ');
    console.log(words.length);
});
于 2014-01-22T07:42:38.437 回答
1
var str = $('#name').val(),
    count = str.split(' ').length;

假设每个单词用空格隔开

于 2012-01-06T03:02:20.847 回答
1

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

$('input[type="submit"]').click( function() {
    var words = $('#name').val().split(/[\s\.,;]+/);
    console.log(words.length);
});
于 2013-12-18T09:52:35.553 回答
-1

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

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

查看更多@Count words in JavaScript using JQuery

于 2018-04-18T07:11:16.793 回答