从textarea中删除包含特定单词的所有行

时间:2015-04-13 14:10:38

标签: javascript jquery

我有几行文字的textarea。我想删除包含特定单词的行,例如" car"。

<textarea id="test">cars_and_house
tree_and_car
tree_and_house
cat_and_car</textarea>

使textarea看起来像那样(没有空行):

<textarea id="test">tree_and_house</textarea>

我想从val.replace开始,但是如何删除整条线?

$( "#test" ).val().replace("car", "") ;

3 个答案:

答案 0 :(得分:4)

您可以拆分换行符\n并过滤掉包含单词cat的内容。您还需要重新设置当前未执行的value属性。

$('#test').val(function(_, val){
   return val.split("\n").filter(function(line){
      return line && line.indexOf("car") == -1
   }).join("\n");
});

答案 1 :(得分:0)

你正在使用的是旧的vanilla javascript替换功能。 jQuery有自己的替换函数:$ .replaceWith()。

我也会建议online regeular expression tester,它就像一个魅力,并提供非常有用的反馈。

我认为此代码段适用于您:

var newValue = $("#test").val().replace(/([\w]?)*car([\w]?)*/gi,"");
$("#test").val(newValue);

其中 g 搜索的内容超过第一个匹配项, i 使其不区分大小写。

希望它有所帮助。

答案 2 :(得分:0)

这:$( "#test" ).val().replace(/^.*car.*\n?/gim,"");

返回:

tree_and_house

这:$( "#test" ).val().replace(/^.*car.*/gim,"");

返回:

//empty row 
//empty row
tree_and_house

如果您需要case sensitive匹配,请删除i

/^.*car.*/gm

这与CarcAr

不符