【问题标题】:Replacing strings with regex in JavaScript在 JavaScript 中用正则表达式替换字符串
【发布时间】:2011-02-17 14:54:15
【问题描述】:

一个特定的正则表达式正在困扰我。我只是想替换 range=100

这样的字符串
var string = '...commonstringblabla<b>&range=100&</b>stringandsoon...';

...commonstringblabla<b>&range=400&</b>stringandsoon...

我成功地将“range=100”部分与

alert(string.match(/range=100/));

但是当我尝试替换它时,

string.replace(/range=100/, 'range=400');

什么都没有发生。该字符串仍然具有 range=100 。我怎样才能让它发挥作用?

【问题讨论】:

    标签: javascript regex replace match


    【解决方案1】:

    string.replace 没有破坏性,也就是说,它不会改变调用它的实例。

    要做到这一点,请使用

    string = string.replace("range=100","range=400");
    

    【讨论】:

      【解决方案2】:

      因为replace 不会修改它所应用的字符串,而是返回一个新字符串。

      string = string.replace(/range=100/, 'range=400');
      

      【讨论】:

        【解决方案3】:

        我会这样做:

        string.replace(/([?&])range=100(?=&|$)/, '$1range=400')
        

        如果它是一个 URI 参数,它只会替换 range=100(因此它在左侧由 ?&amp; 分隔,在右侧由 &amp; 或字符串的结尾分隔)。

        【讨论】:

        • 这是最有用的答案恕我直言
        【解决方案4】:

        我会这样做

        string = string.replace(/\brange=100(?!\d)/, 'range=400');
        

        【讨论】:

          【解决方案5】:

          只写string.replace("range=100","range=400");

          【讨论】:

            猜你喜欢
            • 2013-01-21
            • 1970-01-01
            • 1970-01-01
            • 2018-07-13
            • 1970-01-01
            • 2015-11-30
            • 2021-11-29
            相关资源
            最近更新 更多