Javascript 如何使用Jquery替换url中的查询字符串值
我想从url更改url查询字符串值。 例如: 我有这个网址:www.example.com/site-post/234-1993/ 假设234是个人id,1993年是个人年。如果没有重写规则,url如下所示: www.example.com/site post/?person\u id=234和person\u year=1993 当我按下按钮时,我想更改234和1993的值 我有一个用于不友好url的函数Javascript 如何使用Jquery替换url中的查询字符串值,javascript,jquery,Javascript,Jquery,我想从url更改url查询字符串值。 例如: 我有这个网址:www.example.com/site-post/234-1993/ 假设234是个人id,1993年是个人年。如果没有重写规则,url如下所示: www.example.com/site post/?person\u id=234和person\u year=1993 当我按下按钮时,我想更改234和1993的值 我有一个用于不友好url的函数 function update_permalink(uri, key, value) {
function update_permalink(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
return uri + separator + key + "=" + value;
}
}
如果我调用此函数,它会将我的url www.example.com/site-post/234-1993/更改为www.example.com/site post/234-1993/?person\u id=234&person\u year=1993
是否有人知道如何更改url而不使用查询字符串附加当前url,只更改值?我不太清楚您为什么要这样做,但这段代码应该可以工作:
function update_permalink(uri, param1, param2) {
var re = uri.match(/([^\?]*)\/site-post\/(\d*)-(\d*)\//);
if (uri.match(/([^\?]*)\/site-post\/(\d*)-(\d*)\//)){
uri = uri.replace(re[2],param1);
uri = uri.replace(re[3],param2);
return uri;
}
}
然后像这样使用:
update_permalink("www.example.com/site-post/234-1993/",112,113);
结果:
www.example.com/site-post/112-113/
将此代码放入函数并检查 如果window.location.href.indexOf234>0{ var newUrl=window.location.href.replace234-1993/,?person\u id=234&person\u year=1993; window.history.replaceState{},newUrl;
}jQuery不是对您的问题的回答,但是您100%确定您知道您在这里做什么?您知道使用服务器端URL重写可能会更好吗?