字数统计Jquery函数

时间:2013-07-23 15:03:06

标签: javascript jquery html

这是计算单词的脚本。

  1. 可以简化吗?
  2. 删除全部或部分单词时不更新值。我尝试过但无法想出任何东西。怎么办呢?
  3. “可以变得简单吗?”这应算作五个字。但是检查这个[没有引号]这个脚本将它与SIX联系起来。有什么问题?
  4. HTML      邮件:          总字数:0字。

    jquery的

    $(document).ready(function () {
        $('#word_count').wordCount();
    });
    
    jQuery.fn.wordCount = function (params) {
        var p = {
            counterElement: "display_count"
        };
        var total_words;
    
        if (params) {
            jQuery.extend(p, params);
        }
    
        //for each keypress function on text areas
        this.keypress(function () {
            total_words = this.value.split(/[\s\.\?]+/).length;
            jQuery('#' + p.counterElement).html(total_words);
        });
    };
    

    小提琴 http://jsfiddle.net/ZmbxS/

3 个答案:

答案 0 :(得分:6)

  

可以简化吗?

当然可以使用字边界匹配任何不是空格的东西:

$('#word_count').on('keyup', function() {
    $('#display_count').text(this.value.split(/\b\S+\b/g).length-1)
});

FIDDLE

这似乎是一个浪费使用插件的东西,可以很容易地完成?

答案 1 :(得分:0)

见:

Demo

  1. 您需要“修剪”您的值以确保没有前导/尾随空格(产生提到的+1)

  2. 我已将此处理程序附加到keyup事件。

  3. 代码:

    this.keyup(function () {
        my_value = this.value.replace(/^\s+|\s+$/, '');
        total_words = my_value.split(/[\s\.\?]+/).length;
        jQuery('#' + p.counterElement).html(total_words);
    });
    

答案 2 :(得分:-1)

我认为这是你正在使用的事件的问题。我建议你将函数绑定到change事件。

对于正则表达式,仅通过?:

进行拆分是不够的
stringValue.split(/\s/);

最好的问候。