-2

使用正则表达式,我想编写一个函数,将 get 参数替换为新值。

例如,以下内容将 pin 替换为新值。如果参数不存在,我们将其添加到 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 回答