4

一个特定的正则表达式现在困扰着我。我只是想在一个字符串中替换range=100

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

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

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

警报(字符串。匹配(/范围=100/));

但是当我尝试更换它时,

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

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

4

5 回答 5

6

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

为此,请使用

string = string.replace("range=100","range=400");
于 2010-05-10T10:46:17.450 回答
5

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

string = string.replace(/range=100/, 'range=400');
于 2010-05-10T10:45:51.513 回答
2

我会这样做:

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

仅当它是 URI 参数时才会替换range=100(因此它的左侧由?or分隔&,右侧由&字符串的结尾或结尾分隔)。

于 2010-05-10T10:45:56.110 回答
1

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

于 2010-05-10T10:43:33.113 回答
1

我会这样做

string = string.replace(/\brange=100(?!\d)/, 'range=400');
于 2010-05-10T10:52:28.263 回答