Javascript 获取链接(url)参数的方法

摘要: 有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值。本文给出的就是这个流程的具体实现方法。

当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子。
 
分解链接的方式:
  1.  
  2. <script type="text/javascript">
  3. <!--
  4. // 说明:Javascript 获取链接(url)参数的方法
  5. // 整理:http://www.CodeBit.cn
  6.  
  7. function getQueryString(name)
  8. {
  9.     // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
  10.     if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
  11.     {
  12.         return '';
  13.     }
  14.  
  15.     // 获取链接中参数部分
  16.     var queryString = location.href.substring(location.href.indexOf("?")+1);
  17.  
  18.     // 分离参数对 ?key=value&key2=value2
  19.     var parameters = queryString.split("&");
  20.  
  21.     var pos, paraName, paraValue;
  22.     for(var i=0; i<parameters.length; i++)
  23.     {
  24.         // 获取等号位置
  25.         pos = parameters[i].indexOf('=');
  26.         if(pos == -1) { continue; }
  27.  
  28.         // 获取name 和 value
  29.         paraName = parameters[i].substring(0, pos);
  30.         paraValue = parameters[i].substring(pos + 1);
  31.  
  32.         // 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格
  33.         if(paraName == name)
  34.         {
  35.             return unescape(paraValue.replace(/\+/g, " "));
  36.         }
  37.     }
  38.     return '';
  39. };
  40.  
  41. //http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
  42. alert(getQueryString('test'));
  43. //-->
  44. </script>
  45.  
用正则匹配的方式:
  1.  
  2. <script type="text/javascript">
  3. <!--
  4. function getQueryStringRegExp(name)
  5. {
  6.     var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");  
  7.     if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
  8. };
  9.  
  10. //http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
  11. alert(getQueryStringRegExp('test'));
  12. //-->
  13. </script>
  14.  
 
posted on 2007-11-15 15:10  千山暮雪  阅读(440)  评论(0编辑  收藏  举报