【发布时间】:2015-02-18 19:52:05
【问题描述】:
我从here in stack 得到这个函数来替换这样的url参数:
function replaceUrlParam(paramName, paramValue){
var currentUrl = window.location.href;
var pattern = new RegExp('('+paramName+'=).*?(&|$)')
var newUrl = currentUrl.replace(pattern,'$1' + paramValue + '$2');
if(newUrl == currentUrl){
newUrl = newUrl + (newUrl.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue
}
window.history.pushState('',document.title,newUrl);
return newUrl;
}
www.mysite.com/index.php?id=14&&cat=20
我就是这样使用它的:
replaceUrlParam('id', 15);
这样就可以了。
但问题是,如果我使用与 url 中相同的 id,它会重复 id。
replaceUrlParam('id', 14)--will give--->www.mysite.com/index.php?id=14&&cat=20&&id=14
如何更改此功能以在其 id 相同时不提供重复项? 谢谢
小提琴here
【问题讨论】:
-
如果我对您的示例进行硬编码, jsfiddle.net/4dw8gh9j 似乎对我有用。你确定
window.location.href是你所期望的吗? -
@dckuehn 它不起作用,http://jsfiddle.net/4dw8gh9j/1/ 正如我所说的,它在相同的 id 时重复。
-
对不起,我经常为了自己的利益而读得太快。
标签: javascript url