正则表达式javascript在url中更改param的值

时间:2013-06-12 18:30:30

标签: javascript jquery

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

例如,以下内容将使用新值替换pin。如果参数不存在,我们会将其添加到网址中。

  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

1 个答案:

答案 0 :(得分:1)

您可以像这样定义函数:

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

这假设URL的名称和值已被转义。

Demonstration(打开控制台查看结果)