追加或替换URL参数值

   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; 
    }

你可能感兴趣的:(追加或替换URL参数值)