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

Abd*_*haq 12 javascript replace

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

#RemoveMe
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 28

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

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

str.replace(/^.*#RemoveMe.*$/mg, "");
Run Code Online (Sandbox Code Playgroud)

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


小智 8

正如@CMS所建议的,它只是用“”替换该行,但仍然有一个额外的行。

对于字符串:

var str = 'line1\n'+
'line2\n'+
'#RemoveMe line3\n'+
'line4'; 
Run Code Online (Sandbox Code Playgroud)

如果你想要这样的输出:

line1
line2
line4
Run Code Online (Sandbox Code Playgroud)

代替

line1
line2

line4
Run Code Online (Sandbox Code Playgroud)

尝试这个 :

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

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