关闭

js方法智能给url传参数

标签: url传参数
175人阅读 评论(0) 收藏 举报
分类:

昨天写的一个js方法,感觉还不错


作用就是给url增加参数

举例说,我有个需求

我当前的url为 http://laocaiit.com/index.php?b=345

我想传个参数a ,值为123的话,那么我就直接在后面增加&a=123,可是如果我的url为http://laocaiit.com/index.php?a=1&b=345,那我就得先判断是否已有参数a了


方法如下,url为传入的url链接,name为参数名称,value为值,返回修改后的url,如果value为空的话,就会删除name这个参数

function setUrlParam(url,name,value) {
        var localUrl = url;        
        if(value!=null){
        	//增加或修改url参数
        	//判断URL是否带有?号
            if (localUrl.indexOf("?") < 0) {
            	//判断url是否有#
                var a=localUrl.indexOf("#");
                if(a<0){
                    return localUrl + "?" + name + "=" + value;
                }else{
                    return localUrl.substring(0,a)+"?"+name+"="+value+localUrl.substring(a);
                }
              
            } else {            
                var regex = new RegExp("([\\?&]" + name + "=)[^&#]*");        
                if (regex.test(localUrl)) {            
                    return localUrl.replace(regex, "$1"+value);
                }
                else {   
                    var a=localUrl.indexOf("#");
                    if(a<0){
                        return localUrl + "&" + name + "=" + value;
                    }else{
                        return localUrl.substring(0,a)+"&"+name+"="+value+localUrl.substring(a);
                    }                    
                }
            }
        }else{
        	//删除url的参数
            var regex = new RegExp("([\\?&])" + name + "=[^&#]*(&?)");        
            if (regex.test(localUrl)) { 
                return localUrl.replace(regex, function(m,p1,p2){
                	if(p1=="?"){
                		return p2=="&"?"?":"";
                	}else{
                		return p2;
                	}
                });
            }else{
            	return localUrl;
            }
            
        }
        
    }


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22402次
    • 积分:429
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论