允许用双引号括起来的单词包含在单词计数中

时间:2015-07-29 20:11:03

标签: jquery regex

我正在研究一个jQuery函数,它计算textarea字段中的单词数。我想确保用双引号括起来的单词(例如“this”或“that”)分别计为一个单词。现在这就是我所拥有的:

    var maxWords = 100;
    $('#CommentsField').keypress(function() {
            var $this, wordcount;
            $this = $(this);
            wordcount = $this.val().split(/\s\b[\s,\.\'-:;]*/).length;

            if (wordcount > maxWords) {
                    alert("You've reached the maximum allowed words. Please keep the nominee description to 100 words.");
                    $('#WordCount').text("Word Count: "+maxWords);
                    return false;
            } else {
                return $('#WordCount').text("Word Count: "+wordcount);
            }
    });

这几乎可行,但它不包括用双引号括起来的单词,这会混淆单词计数。我的正则表达式中缺少什么可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用

计算字符串中所有非空白字符序列的出现次数
$this.val().match(/\S+/g).length

请注意,如果字符边界位于非字字符之间,则字符边界将无法匹配(请参阅demo)。

另一种方法:如果您的输入不是Unicode,则只能使用/\b/g,并将匹配数除以2.