js方法智能给url传参数

原创 2015年11月18日 10:13:40

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


相关文章推荐

获取网页URL地址及参数等的两种方法(js和C#)

一 js   先看一个示例 用javascript获取url网址信息 document.write("location.host="+location.host+""); ...
  • john320
  • john320
  • 2016年07月15日 17:55
  • 1077

JS获取URL中参数值(QueryString)的方法

** 今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split(“?”)这样一步步的分解出需要的参数。后来想了一下,肯定会有更加简单的方法的!所以在网上找到...

js中自定义QueryString方法,获取url中的参数值

在js中,怎么获取url中传递的参数,请看下面的代码: function QueryString(key) { var reg= new RegExp (key + "=...

js提取url参数的几种方法。(搜集)

第一,正则表达式,直接找出参数等号右边的值即可。但是,如果该参数后还有&就不可行。     script language="javascript">     var str=window.l...

Js+Jq获取URL参数的集中方法

方法一:正则分析法 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", ...
  • zqtsx
  • zqtsx
  • 2014年05月20日 11:40
  • 3288

使用JS准确获取URL网址中参数的几种方法

(新年第一天上班)今天就遇到这样一个问题,简单描述就是需要从URL中获取所传递的参数。如果使用后台语言我们都会有很多中方法来获取,但是网站的中的所有数据都是通过AJAX进行传递的,所以需要使用JS进行...

JS获取当前完整的url地址以及参数的方法

javascript 获取当前 URL 参数的两种方法: //返回的是字符串形式的参数,例如:class_id=3&id=2& function getUrlArgStr(){ var...
  • zlb824
  • zlb824
  • 2016年05月09日 22:22
  • 5248

js获取url参数

  • 2015年11月18日 11:49
  • 210B
  • 下载

如何用js获取当前url的参数值

  • 2011年04月15日 22:58
  • 597B
  • 下载

ASP.NET MVC3 通过Url传多个参数方法

MVC3通过URL传值,一般情况下都会遇到【从客户端(&)中检测到有潜在危险的 Request.Path 值】的问题 这个问题的解决方法,我的其他博文已经有了说明,这里给出连接;【从客户端(&)中检...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js方法智能给url传参数
举报原因:
原因补充:

(最多只允许输入30个字)