js方法智能给url传参数

昨天写的一个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;
            }
            
        }
        
    }


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bestcjt/article/details/49903097
文章标签: url传参数
个人分类: js
上一篇让你的thinkphp支持嵌套继承模板
下一篇解决firefox页面刷新后退,按钮禁用状态无法恢复
想对作者说点什么? 我来说一句

WebView与Js交互Demo

2016年06月07日 1.9MB 下载

URL传参数时中文乱码解决方法

2007年12月17日 26KB 下载

没有更多推荐了,返回首页

关闭
关闭