网站地图    收藏   

主页 > 前端 > javascript >

Javascript获取url参数值方法总结

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 在js中要获取url参数与参数值的方法很简单,我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为...

实例1

 代码如下 复制代码


function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null)
return unescape(r[2]);
return null;
}


调用方法

alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));

如:getUrlParam("id")。
这个方法通过构造一个正则表达式来匹配到需要查询的url参数,location.search是获取到url中的查询字符串部分。这个方法的优点是简洁,缺点是每次都需要对字符串进行分析查找,多次查询同一个参数效率低下,所以有了下面这个方法。

获取url参考值方法二

 代码如下 复制代码


<span style="font-size: 16px;"><Script language="javascript">
function GetRequest() {
   var url = location.search; //获取url中"?"符后的字串
   var theRequest = new Object();
   if (url.indexOf("?") != -1) {
      var str = url.substr(1);
      strs = str.split("&");
      for(var i = 0; i < strs.length; i ++) {
         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
      }
   }
   return theRequest;
}
</Script></span>

这样调用:

 代码如下 复制代码

 

<Script language="javascript">
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数3 = Request['参数3'];
参数N = Request['参数N'];
</Script>

利用闭包和正则表达式实现

 代码如下 复制代码

var getUrlParam = function(){
  var args = null;
  return function(name){
    if(args === null){
      if(location.search == "") return "";
      var queryArray = location.search.substring(1).split("&");
      var i;
      args = {};
      for(i = 0;i < queryArray.length;i++){
        var match = queryArray[i].match(/([^=]+)=([^=]+)/);
        if(match !== null){
          args[match[1]] = match[2];
        }
      }
    }
    return args[name] == undefined ? "" : args[name];
  };
}();

这个方法利用了js的函数闭包,将url参数都保存在一个匿名函数里面的args变量中,而且除了通过getUrlParam外,任何方法都访问不到该变量。而且只有第一次获取url参数的时候才会分析url,以后就直接从变量args中读取。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论