2013-07-24 73 views
2

我的影片結構爲這樣的字符串:如何使用正則表達式更改此值?

"http://mydomain.com/?i=0" 

我希望能夠在JavaScript中使用正則表達式來改變i的價值,但我不知道該怎麼做。有人能夠幫助嗎?

+0

是初始值總是將是數字?如果是這樣,可能的範圍是什麼? – StephenTG

+0

另外,如果它始終與數值相同,那麼使用子字符串可能會更容易 – StephenTG

+1

並且您是否可以控制用作替換變量的內容? 「我」是一個非常糟糕的,是非常常用的...例如,一個正則表達式可以很容易地替換「域」中的「我」以及你的查詢字符串... –

回答

2
"http://mydomain.com/?i=0".replace(/i=.*$/, 'i='+<newValue>); 

,如果你需要,以應付額外的參數如下i使用

"http://mydomain.com/?i=0&j=k".replace(/i=[^&]+/, 'i='+<newValue>); 

a fiddle to demonstrate it

+0

該正則表達式也將取代任何在'i'參數後傳入的附加參數。 – Tro

+0

@Tro:這是正確的,請參閱已編輯的rsponse的解決方案 – collapsar

+0

這應該有效。只是想知道它是否會作爲空傳遞(即http://mydomain.com/?i&j=k) – Tro

3

這裏是一個開始的地方:

str = "http://mydomain.com/?i=0"; 
str = str.replace(/((?:\?|&)i=)([^&]*)/g, '$1foo'); 
+0

這將會替換'?'字符。 – talemyn

+1

@talemyn - 好,趕快,謝謝。 –

+1

您可能還想在開頭添加'str =',因爲替換實際上不會實際更改'str'值。 ;) – talemyn

0

例子:

var str = "http://mydomain.com/?i=0"; 

var i=1; // or any other value (e.g. i="test") 
str = str.replace(/i=.*/, 'i='+i); 
alert(str); 
+0

參數可能不總是數字,OP尚未確認。 – Tro

+0

那麼,這些例子說明:'http://mydomain.com/?i = 0'。對我來說似乎相當數量。 –

+0

這可能適用於這個例子,但是如果給定一個字符串,也不適用於浮點數或負整數,這兩種情況都可能發生,直到我們更瞭解他的情況爲止。 – Tro

相關問題