js修改url某個參數值
- 當一個頁面上的搜尋條件很多而且需要進行聯合get查詢時
- 當這個聯合查詢可以無限制的進行下去
這時你的url會怎樣?無限制的在目前的url後面附加你的查詢參數嗎?
很顯然這是不科學的。
下面分享一個辦法可以直接修改目前url中的某個參數的值而不會導緻這個url中同一個參數存在多個值的情況。
這在一定程度上就将url的長度控制到了最短。既人性化又利于搜尋引擎的優化。
下面是利用javascript修改url中某個參數的值的具體思路:
/*
* url 目标url
* arg 需要替換的參數名稱
* arg_val 替換後的參數的值
* return url 參數替換後的url
*/
function changeURLArg(url,arg,arg_val){
var pattern=arg+'=([^&]*)';
var replaceText=arg+'='+arg_val;
if(url.match(pattern)){
var tmp='/('+ arg+'=)([^&]*)/gi';
tmp=url.replace(eval(tmp),replaceText);
return tmp;
}else{
if(url.match('[\?]')){
return url+'&'+replaceText;
}else{
return url+'?'+replaceText;
}
}
return url+'\n'+arg+'\n'+arg_val;
}
使用方法如下: