Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字数计算Jquery函数_Javascript_Jquery_Html - Fatal编程技术网

Javascript 字数计算Jquery函数

Javascript 字数计算Jquery函数,javascript,jquery,html,Javascript,Jquery,Html,这是计算单词的脚本 它能变得简单吗 删除全部或部分单词时,不会更新值。我试过了,但什么都想不出来。怎样才能做到呢 “可以简化吗?”这应算作五个字。但是检查这个[不加引号]这个脚本会将其压缩六次。怎么了 HTML 信息: 总字数:0个字 jquery $(document).ready(function () { $('#word_count').wordCount(); }); jQuery.fn.wordCount = function (params) { var p =

这是计算单词的脚本

  • 它能变得简单吗
  • 删除全部或部分单词时,不会更新值。我试过了,但什么都想不出来。怎样才能做到呢
  • “可以简化吗?”这应算作五个字。但是检查这个[不加引号]这个脚本会将其压缩六次。怎么了
  • 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);
        });
    };
    
    拨弄

    我认为这与您使用的事件有关。我建议您将函数绑定到变更事件

    对于regexp,仅通过以下方式进行拆分是不够的:

    stringValue.split(/\s/);
    

    致以最诚挚的问候。

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

    对于regexp,仅通过以下方式进行拆分是不够的:

    stringValue.split(/\s/);
    
    致以最诚挚的问候。

    请参见:

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

  • 我将此处理程序附加到
    keyup
    事件

  • 代码:

    见此:

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

  • 我将此处理程序附加到
    keyup
    事件

  • 代码:

    它能变得简单吗

    当然可以,使用单词边界匹配任何非空白的内容:

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

    这似乎是浪费了一个插件的使用,因为它可以很容易地完成一些事情

    它能变得简单吗

    当然可以,使用单词边界匹配任何非空白的内容:

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


    这似乎是浪费了一个插件,因为它可以轻松地完成一些事情。

    将您的函数绑定到
    change()
    ,而不是按键。
    console.log()
    ,以查看它正在计算哪些单词。也许你的正则表达式是错误的。@Seiyria-change只会在输入失去焦点时触发。它是
    input
    事件。@BenBarden我不是在寻找你提供的链接。您提供了一个限制计数器。我正在寻找单词计数器。将函数绑定到
    change()
    而不是按键。
    console.log()
    以查看它正在计算哪些单词。也许你的正则表达式是错误的。@Seiyria-change只会在输入失去焦点时触发。它是
    input
    事件。@BenBarden我不是在寻找你提供的链接。您提供了一个限制计数器。我正在查找word counter。但当所有内容都被删除时,它会留下1而不是0。试试看。但是当所有的都被删除时,它会留下1而不是0。试试看,没那么简单。连字符的单词或者包含撇号的单词呢?@CrazyTrain-它们呢?你在提供的小提琴上试过了吗?没有,我在控制台上测试过。为什么会有不同的结果?编辑:……哦,我想我忘了
    -1
    。我道歉+1如果我加上这样的词。。“什么?fcuk”没有引号。它将显示4个单词。但它只显示了3个。怎么能改变呢?没那么简单。连字符的单词或者包含撇号的单词呢?@CrazyTrain-它们呢?你在提供的小提琴上试过了吗?没有,我在控制台上测试过。为什么会有不同的结果?编辑:……哦,我想我忘了
    -1
    。我道歉+1如果我加上这样的词。。“什么?fcuk”没有引号。它将显示4个单词。但它只显示了3个。怎样才能改变呢?