JavaScript:如何删除包含特定字符串的行

19

如果一行包含特定字符串,如何删除整行?

#RemoveMe

2
从哪里删除?您是指在变量中拥有一个长的多行字符串,并替换其中的一部分吗?您是指从DOM中删除一行HTML,还是其他什么? - Jacob Mattison
2个回答

44

如果你有一个多行字符串,你可以使用带有 m 标志的 RegExp:

var str = 'line1\n'+
'line2\n'+
'#RemoveMe line3\n'+
'line4';

str.replace(/^.*#RemoveMe.*$/mg, "");

m标志将把元字符^$视为每行的开头和结尾,而不是整个字符串的开头或结尾。


太棒了!在使用Markdown编写文章摘要且不想显示标题时,它可以完美地展示。 - JamieHoward

8

正如@CMS所建议的那样,它只是用""替换了该行,但仍有一行额外的内容。

对于字符串:

var str = 'line1\n'+
'line2\n'+
'#RemoveMe line3\n'+
'line4'; 

如果您想要这样的输出:
line1
line2
line4

替代

line1
line2

line4

试试这个:

str.split('\n').filter(function(line){ 
    return line.indexOf( "#RemoveMe" ) == -1;
  }).join('\n')

所有包含字符串“#RemoveMe”的行都被简单地过滤掉,还可以在过滤过程中使用多个关键字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接