【问题标题】:JavaScript: how to remove line that contain specific stringJavaScript:如何删除包含特定字符串的行
【发布时间】:2011-02-25 05:29:13
【问题描述】:

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

#RemoveMe

【问题讨论】:

  • 从什么中删除?您是在谈论在变量中有一个长的多行字符串并替换它的一部分吗?您是在谈论从 DOM 中删除一行 HTML 吗?还是什么?

标签: javascript replace


【解决方案1】:

如果您有一个多行字符串,您可以使用带有m 标志的正则表达式:

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

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

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

【讨论】:

  • 这太棒了!非常适合在使用 Markdown 编写并且您不想显示标题时显示帖子摘要。
  • 正则表达式不是很好的解决方案
【解决方案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”的行都被简单地过滤掉,过滤时也可以使用多个关键字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2016-01-05
    相关资源
    最近更新 更多