用JavaScript替换正则表达式的字符串

时间:2010-05-10 10:42:01

标签: javascript regex replace match

一个特别的正则表达式现在正在困扰我。我只是想在

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

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

我成功地将“range = 100”-part与

匹配
  

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

但是当我尝试更换它时,

  

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

没有任何反应。该字符串仍然具有范围= 100。我怎样才能使它发挥作用?

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

string.replace不具有破坏性,意味着它不会改变它被调用的实例。

要执行此操作

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

答案 2 :(得分:2)

我会这样做:

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

我会这样做

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