jquery - 使用 JQuery 删除特定数字后的单词

标签 jquery regex string

我有一个 textarea,我想在其中仅允许 30 个单词并删除剩余的多余单词:

$("#short_desc").keydown(function(e){

    var d = $(this).val().split(/\b[\s,\.-:;]*/).length;
    if(d > 30){
        alert("Only 30 words allowed");
        e.preventDefault();
        // here i want to add logic how to remove words.
        return false;
    }
});

我尝试过字符计数,但无法缩短这个逻辑。 有人可以提供一些提示吗?

我有一个逻辑,计算空格,然后计算字符数,直到 30 个空格,并获取该字符数之前的子字符串。

最佳答案

而是删除这些词;您可以将前 30 个单词分配给 textarea 值。

下一个代码运行良好。 split() 分隔符不会被删除。我使用了捕获括号:任何捕获的文本都包含在结果字符串数组中。

NOTE:

You must use double the amount you want to limit. You should use 60.

I created a "constant" MAX_WORDS_ALLOW for make the things simplest.

var MAX_WORDS_ALLOW = 30;

// Change, keup and paste event.
$("#short_desc").on("change keyup paste", function(e){   

    var d = $(this).val().split(/\b[\s,\.-:;]*/).length;
    if(d > MAX_WORDS_ALLOW ){
        alert("Only "+MAX_WORDS_ALLOW +" words allowed: "+d);
        e.preventDefault();

        // Get the 30 first words
        var thirty_Words = $(this).val().split(/(\b[\s,\.-:;]*)/, MAX_WORDS_ALLOW * 2).join("");
        // Here I assign the 30 first words to textarea.
        $(this).val(thirty_Words);

        return false;
    }
    $("#numberWords").html(d);

});

// Initial text, for the JSFiddle example
$("#short_desc").val("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus").change();

您可以在此处查看此操作:http://jsfiddle.net/xfhoc1gq/2/

关于jquery - 使用 JQuery 删除特定数字后的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646282/

相关文章:

javascript - 验证表单中仅可见选项卡的所有输入字段

javascript - 使用 jQuery 禁用空选择框

java - 将存储在数字数组中的数字加一

python - 使用递归将字符串拆分为 block

java - 当我在 Java 中创建一个新的 String 时,它是用 null 还是用 ""初始化的?

jquery - Chrome 打包应用程序无法与 jquery 和 jquery mobile 配合使用

javascript - jQuery 旋转图像不在中心

javascript - grep/regex 做迭代/增量

python - 如何在正则表达式中给出正向查找的范围

java - 检测字符串内容是否为日期时间的方法 - RegExp?