var replaceParamVal = function(orgUrl,obj){
var reg;
$.each(obj,function(paramName,replaceWith){
reg = new RegExp('('+ paramName +'=)([^&]*)','gi'),
has = orgUrl.indexOf(paramName);
if(has<=0){ // 不存在改参数
var hasQuestion = orgUrl.indexOf("?");
if(hasQuestion>0){
orgUrl = orgUrl+"&" +(paramName +'=' +replaceWith);
}else{
orgUrl = orgUrl+"?" +(paramName +'=' +replaceWith);
}
}else{
// 存在该参数
orgUrl = orgUrl.replace(reg,paramName+'='+replaceWith);
}
})
return orgUrl;
};
追加参数.png
替换参数.png
若是没有引入jquery/zepto,就会提示没有$.each()这个函数,可改成for ... in ,效果是一样的。
var replaceParamVal = function(orgUrl,obj){
var reg;
for(var paramName in obj ){
var replaceWith = obj[paramName]
reg = new RegExp('('+ paramName +'=)([^&]*)','gi'),
has = orgUrl.indexOf(paramName);
if(has<=0){ // 不存在改参数
var hasQuestion = orgUrl.indexOf("?");
if(hasQuestion>0){
orgUrl = orgUrl+"&" +(paramName +'=' +replaceWith);
}else{
orgUrl = orgUrl+"?" +(paramName +'=' +replaceWith);
}
}else{
// 存在该参数
orgUrl = orgUrl.replace(reg,paramName+'='+replaceWith);
}
}
return orgUrl;
}
网友评论