使用正则表达式,我想编写一个用新值替换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
答案 0 :(得分:1)
您可以像这样定义函数:
function myfunc(url, name, value) {
return url.replace(new RegExp("(\\?|&)"+name+"=.*?($|&)"), '$1'+name+'='+value+'$2')
}
这假设URL的名称和值已被转义。
Demonstration(打开控制台查看结果)