特殊字符被视为单词

时间:2014-02-25 08:45:08

标签: jquery

我正在处理以下字数统计代码,我想阻止它将像^%$£()*这样的特殊xts计为单词:

JS

$(function() {
    $("#sys-tbox").each(function() {
        var input = '#' + this.id;
        counter(input);
        $(this).keyup(function() {
            counter(input);
        });
    });
});

function counter(field) {
    var number = 0;
    var text = $(field).val();
    var word = $(field).val().split(/[ \n\r]/);
    words = word.filter(function(word) {
        return word.length > 0
    }).length;
        $('.words').text(words);
        $('.character').text(text.length);
}

以下是Fiddle

如果已经回答,请提供链接。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码;

words = word.filter(function(word) {
        var pattern = /^[a-zA-Z0-9_']*$/;
        if (pattern.test(word)) {
            return word.length > 0
        }
    }).length;

我假设你只想要字母数字字符。

您可以在此处查看工作演示: http://jsfiddle.net/tKKY6/4/

修改:您可以根据需要更新/^[a-zA-Z0-9_']*$/

答案 1 :(得分:1)

您可以在字词过滤器中添加一个条件,确保其中至少有一个数字或字母:

words = word.filter(function(word) {
    return word.length > 0 && word.match(/^[A-Za-z0-9]/);
}).length;

JSFiddle