2013-06-12 61 views
-2

使用正则表达式,我想编写一个函数,它将用新值替换get参数。正则表达式javascript改变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 
+0

您目前的代码是什么?你做了什么 ?你在哪里阻挡? – Lepidosteus

+0

就像一个参考,如果你想要这个新的参数显示在URL中,你将不得不重新加载页面,因为你不能直接更新查询字符串,或b)利用*** HTML5历史API ***,它具有修改查询字符串的能力。 – War10ck

回答

1

您可以定义函数是这样的:

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

这假设名称和值又逃过一个URL。

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