我需要更改给定URL的查询参数的值,而与值类型无关。
我有类似的功能
function urlGenerator (key, value) {
var url = "www.domain.com/?id=10&name=xxx&dob=2018-12-13";
// change the value for given key
return url;
}
查询参数的顺序不固定。它可以是任何顺序。我认为正则表达式可以找到解决方案。
我需要通用解决方案,而不管上述指定URL的值类型如何。我需要像下面那样调用上述方法,并且必须获取结果URL。
result = urlGenerator('id', 15);
result = urlGenerator('name', 'yyy');
result = urlGenerator('dob', '2018-10-20');
提前谢谢!
答案 0 :(得分:1)
我使用replace
通过正则表达式更改值。
尝试使用此urlGenerator
函数:
function urlGenerator(url, field, value) {
var reg = new RegExp('('+field+'=[^&]*)', "");
return url.replace(reg, field+'='+value);
}
编辑:
如果您的函数中没有静态网址:
function urlGenerator(field, value) {
var url = "www.domain.com/?id=10&name=xxx&dob=2018-12-13";
var reg = new RegExp('('+field+'=[^&]*)', "");
return url.replace(reg, field+'='+value);
}
答案 1 :(得分:1)
您可以这样做
因此,在temp变量中,我们使用string template
为regex构建表达式,而不是使用RegExp
将其更改为regex对象。然后使用replace
方法替换{{ 1}}和matched value
。
value supplied in function