2010-05-10 31 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');