0

我有一个脚本充当过滤器,根据用户输入的内容从页面中删除元素,过滤效果很好,当用户输入关键字时,它被添加到列表中,

一个用户输入我的样子,

看,妈,这些,是,关键词,繁荣

和你的输出,

  • 这些
  • 关键词

单击其中一个列表项时,我将其从列表和用户输入中删除,我的问题是那些检测是否以及关键字,我还需要删除单词后面的逗号。有没有办法可以搜索以查看是否还需要删除逗号,我当前的脚本如下所示,

$(document).on("click", ".remove-tag", function(e){
        e.preventDefault();
        $(this).parent().animate({
            "width" : "0px",
            "overflow" : "hidden"
        }, 500, function(){
            $(this).remove();
            var str = $("#options_1").val();
            console.log(str);
            var newStr = str.replace($(this).text(), "");
            console.log(newStr);
            $("#options_1").val("");
            $("#options_1").val(newStr);
        });
    });
4

2 回答 2

2

您可以使用,?可选匹配的正则表达式来做到这一点,

var newStr = str.replace("\s*"+$(this).text()+"\s*,?", "");

\s匹配一个space..

*是一个量词,它匹配前面的字符 0 到很多次。所以\s*意味着匹配 0 到很多空格

于 2013-05-15T12:48:46.933 回答
1

通过拆分和过滤,没有正则表达式:

var newStr = str.split(',').filter(function(n){return n.trim()}).join(',');

小提琴

于 2013-05-15T12:49:04.827 回答