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;
}
使用方法如下:
changeURLArg(url,要修改参数的key,修改后的值);