使用 jQuery 中的动态参数和值更改 URL 的查询参数
Change query parameters of URL using dynamic parameter and value in jQuery
我需要更改给定 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;
}
查询参数的顺序不固定。它可以是任何顺序。我认为可以通过 Regex 找到解决方案。
我需要通用解决方案,而不管上面指定的值的类型如何 URL。我需要像下面这样调用上面的方法并且必须得到结果 URL.
result = urlGenerator('id', 15);
result = urlGenerator('name', 'yyy');
result = urlGenerator('dob', '2018-10-20');
提前致谢!!
我使用 replace
通过正则表达式更改值。
试试这个 urlGenerator
函数:
function urlGenerator(url, field, value) {
var reg = new RegExp('('+field+'=[^&]*)', "");
return url.replace(reg, field+'='+value);
}
编辑:
如果您不想在函数中使用静态 url :
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);
}
你可以这样做
所以在临时变量中,我们正在使用 string template
为正则表达式构建一个表达式,而不是使用 RegExp
将其更改为正则表达式 object.And 然后通过使用 replace
方法我们将 matched value
替换为 value supplied in function
.
function urlGenerator (key, value) {
let temp = '(?<='+`${key}`+'=)[^&]+'
let reg = new RegExp(temp,'g');
console.log(reg);
var url = "www.domain.com/?id=10&name=xxx&dob=2018-12-13";
// change the value for given key
return url.replace(reg, value);
}
result = urlGenerator('id', 15);
console.log(result);
result = urlGenerator('name', 'yyy');
console.log(result);
result = urlGenerator('dob', '2018-10-20');
console.log(result);
我需要更改给定 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;
}
查询参数的顺序不固定。它可以是任何顺序。我认为可以通过 Regex 找到解决方案。
我需要通用解决方案,而不管上面指定的值的类型如何 URL。我需要像下面这样调用上面的方法并且必须得到结果 URL.
result = urlGenerator('id', 15);
result = urlGenerator('name', 'yyy');
result = urlGenerator('dob', '2018-10-20');
提前致谢!!
我使用 replace
通过正则表达式更改值。
试试这个 urlGenerator
函数:
function urlGenerator(url, field, value) {
var reg = new RegExp('('+field+'=[^&]*)', "");
return url.replace(reg, field+'='+value);
}
编辑:
如果您不想在函数中使用静态 url :
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);
}
你可以这样做
所以在临时变量中,我们正在使用 string template
为正则表达式构建一个表达式,而不是使用 RegExp
将其更改为正则表达式 object.And 然后通过使用 replace
方法我们将 matched value
替换为 value supplied in function
.
function urlGenerator (key, value) {
let temp = '(?<='+`${key}`+'=)[^&]+'
let reg = new RegExp(temp,'g');
console.log(reg);
var url = "www.domain.com/?id=10&name=xxx&dob=2018-12-13";
// change the value for given key
return url.replace(reg, value);
}
result = urlGenerator('id', 15);
console.log(result);
result = urlGenerator('name', 'yyy');
console.log(result);
result = urlGenerator('dob', '2018-10-20');
console.log(result);