-2

正規表現を使用して、get パラメーターを新しい値に置き換える関数を書きたいと思います。

たとえば、次はピンを新しい値に置き換えます。パラメータが存在しない場合は、URL に追加します。

  myfunc('http://localhost:8080/signup.html?first_name=Ray&username=ray%2B1%40gmail.com&bid=257&pin=1908554354&provisionalId=258&last_name=Ya&debug=true#/signupnew', 'pin', 'AAAAAAA');

// returns http://localhost:8080/signup.html?first_name=Ray&username=ray%2B1%40gmail.com&bid=257&pin=AAAAAAA&provisionalId=258&last_name=Ya&debug=true#/signupnew
4

1 に答える 1

1

次のように関数を定義できます。

function myfunc(url, name, value) {
   return url.replace(new RegExp("(\\?|&)"+name+"=.*?($|&)"), '$1'+name+'='+value+'$2')
}

これは、URL の名前と値がまだエスケープされていることを前提としています。

デモンストレーション(コンソールを開いて結果を確認)

于 2013-06-12T18:35:44.290 に答える