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

4

现在有一个特定的正则表达式让我感到困扰。我只是想要替换字符串中的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。我该如何使其正常工作?

5个回答

6

string.replace并不是一种破坏性操作,也就是说,它不会改变被调用的实例。

要实现这个目的,请使用

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

5
由于replace并不修改其所应用的字符串,而是返回一个新的字符串。
string = string.replace(/range=100/, 'range=400');

2
我会这样做:
string.replace(/([?&])range=100(?=&|$)/, '$1range=400')

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


这是我认为最有用的答案。 - Flex Elektro Deimling

1

我会这样做

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

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接