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

时间:2010-05-28 16:43:47

标签: javascript replace

如果包含如下所示的特定字符串,如何删除完整的行?

#RemoveMe

2 个答案:

答案 0 :(得分:25)

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

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

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

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

答案 1 :(得分:2)

如@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'的行都被简单过滤掉,在过滤过程中也可以使用多个关键字。