A-A+

Javascript获取url参数值方法总结

2016年10月16日 前端设计 暂无评论 阅读 5 views 次

在js中要获取url参数与参数值的方法很简单,我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001,再对获取的字符串进行处理.

实例1,代码如下:

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

调用方法:

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

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

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

如:getUrlParam("id")。

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

获取url参考值方法二,代码如下:

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

这样调用,代码如下:

  1. <Script language="javascript">  
  2. var Request = new Object();  
  3. Request = GetRequest();  
  4. var 参数1,参数2,参数3,参数N;  
  5. 参数1 = Request['参数1'];  
  6. 参数2 = Request['参数2'];  
  7. 参数3 = Request['参数3'];  
  8. 参数N = Request['参数N'];  
  9. </Script>  

利用闭包和正则表达式实现,代码如下:

  1. var getUrlParam = function(){  
  2.   var args = null;  
  3.   return function(name){  
  4.     if(args === null){  
  5.       if(location.search == ""return "";  
  6.       var queryArray = location.search.substring(1).split("&");  
  7.       var i;  
  8.       args = {};  
  9.       for(i = 0;i < queryArray.length;i++){  
  10.         var match = queryArray[i].match(/([^=]+)=([^=]+)/);  
  11.         if(match !== null){  
  12.           args[match[1]] = match[2];  
  13.         }//xiariboke.net  
  14.       }  
  15.     }  
  16.     return args[name] == undefined ? "" : args[name];  
  17.   };  
  18. }();  

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

标签:

给我留言