Nov 4

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

yemq123 , 22:25 , Web开发 , 评论(0) , 引用(0) , 阅读(464) , Via 本站原创 | |
[原文:http://www.codebit.cn/pub/html/javascript/tip/javascript_get_url_parameter/]

有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值。当然,我们也可以用正则直接匹配。

下面是两个例子

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

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]