2012-06-28 113 views

回答

0

請幫我你需要$1NEWSTRING$3

見測試here更換^([^&]*)(&[^&]+)(&.*)$

0

試試下面的正則表達式:

^\w+\?(&\w+=\w+).* 

說明:

^開始

\w+首先之前字?

\? Escape? char,因爲它在正則表達式中有特殊的含義。我們需要文字?炭這裏

(&\w+=\w+)集團的鍵值對的,你想符號後,以取代「&字符」

.*任何字符後

您可以替換,我們有要替換的值黨團。

3

一個更簡潔的方法是替換&包圍的部分,而不是用它替換&。環視斷言在這裏幫助:

更換

(?<=&)name=test(?=&) 

newname=againtest 

這可以變得更強健,以及:

(?<=[&?])name=test(?=&|$) 

在下面的例子甚至匹配:

url?name=test 
url?name=test&foo=bar 
url?foo=bar&name=test 
0
var url = 'url?&name=test&id=2'; 
var regex = /(.*\?&)name=([^&]*)(&.*)/; 
var replacementPattern = '$1newname=again$2$3'; 
var newUrl = url.replace(regex, replacementPattern); 
console.log(newUrl);​​​ 

上述輸出:

url?&newname=againtest&id=2 

jsFiddle Demo

要了解詳情,請參閱JavaScript regular expressionsString.replace

相關問題