【问题标题】:Javascript str.replace with variablesJavascript str.replace 变量
【发布时间】:2013-10-01 21:14:15
【问题描述】:

我找到了一个简短的脚本,它找到包含某个短语的行并将整行替换为新行。但是,我无法弄清楚如何在 str.replace 中包含一个显示“#RemoveMe”的变量。 (我想包含由函数触发器传入的变量'start',以制作 --> (/^.start.$/mg, ""))

任何帮助表示赞赏...

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

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

谢谢。

【问题讨论】:

    标签: javascript variables replace


    【解决方案1】:

    这是内联正则表达式符号的限制。

    如果您使用new RegExp(),您可以将表达式作为字符串传递。

    var find = "start";
    var regexp = new RegExp("^.*" + find + ".*$", "mg"); // note: no delimiters
    str.replace(regexp, "");
    

    【讨论】:

    • 如果需要转义值(以确保用户实际可以使用.等),可以使用PHPJS's version of preg_quote
    • 从来没有(好的)理由允许用户在正则表达式中输入。
    • @FritsvanCampen 否定。用户过滤
    • 文本过滤不需要正则表达式。任何更复杂的东西都可能是愚蠢的。通配符有很长的路要走。
    • 谢谢你,准确的答案,非常快! :)
    猜你喜欢
    • 2016-01-11
    • 1970-01-01
    • 2022-11-17
    • 2014-04-17
    • 1970-01-01
    • 2011-12-20
    • 2016-04-26
    • 2016-04-19
    • 2021-07-02
    相关资源
    最近更新 更多