2010-05-10 80 views
4

特定的正则表达式现在正在对我进行纠正。我只是想用使用JavaScript中的正则表达式替换字符串

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

我成功匹配的 “范围= 100”,更换范围= 100在一个字符串像

var string = '...commonstringblabla<b>&range=100&</b>stringandsoon...'; 

警报-part( string.match(/ range = 100 /));

但是当我尝试来取代它,

与string.replace(/范围= 100 /, '范围= 400');

什么也没有发生。该字符串的范围仍然等于100。我怎样才能使它工作?

回答

5

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

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

*捂脸* 这就是问题所在。谢谢。 – koko 2010-05-10 10:56:05

1

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

2

我这样做:

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

这将只替换range=100如果它是一个URI参数(所以它是由&或结束分隔由要么?&和右边的左的字符串)。

+0

这是最有用的答案imho – 2016-07-22 12:16:05

5

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

要做到这一点使用

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

我会做这样

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