0

& で始まり & で終わる URL の単語を置き換えたいのですが、& は 1 つ残します。例:出力は、 Please help me using JSurl?&name=test&id=2 に置き換える必要があります&name=test&newname=againtest i.e url?&newname=againtest&id=2

4

4 に答える 4

3

よりクリーンな方法は、で囲まれ&ているパーツを交換することであり、を交換しない&ことです。ルックアラウンドアサーションはここで役立ちます:

交換

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

newname=againtest

これは、より堅牢にすることもできます。

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

次の例でも一致します。

url?name=test
url?name=test&foo=bar
url?foo=bar&name=test
于 2012-06-28T13:34:30.667 に答える
0

次の正規表現を試してください。

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

説明:

^行の開始

\w+ 前の最初の言葉?

\? 逃れる ?正規表現で特別な意味を持つchar。文字通り必要ですか?ここにchar

(&\w+=\w+)アンパサンド「&char」の後に置き換えるキーと値のペアのグループ

.* 後の任意の文字

あなたは私たちが持っているgoupをあなたが置き換えたい値で置き換えることができます。

于 2012-06-28T13:31:11.217 に答える
0

^([^&]*)(&[^&]+)(&.*)$と交換する必要があります$1NEWSTRING$3

ここでテストを参照してください。

于 2012-06-28T13:29:11.837 に答える
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 デモ

詳細については、 JavaScript の正規表現String.replaceを参照してください。

于 2012-06-28T13:37:39.717 に答える