注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 科普系列之-使用Windows的..
 帮助

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


2008-06-03 11:24:26
 标签:js处理url参数   [推送到技术圈]

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

当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子。
------------
 分解链接的方式::
  •  
  • <script type="text/javascript">
  • <!--
  • // 说明:Javascript 获取链接(url)参数的方法
  •  
  • function getQueryString(name)
  • {
  • // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
  • if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
  • {
  • return '';
  • }
  •  
  • // 获取链接中参数部分
  • var queryString = location.href.substring(location.href.indexOf("?")+1);
  •  
  • // 分离参数对 ?key=value&key2=value2
  • var parameters = queryString.split("&");
  •  
  • var pos, paraName, paraValue;
  • for(var i=0; i<parameters.length; i++)
  • {
  • // 获取等号位置
  • pos = parameters[i].indexOf('=');
  • if(pos == -1) { continue; }
  •  
  • // 获取name 和 value
  • paraName = parameters[i].substring(0, pos);
  • paraValue = parameters[i].substring(pos + 1);
  •  
  • // 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格
  • if(paraName == name)
  • {
  • return unescape(paraValue.replace(/\+/g, " "));
  • }
  • }
  • return '';
  • };
  •  
  • //http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
  • alert(getQueryString('test'));
  • //-->
  • </script>
  • ——————       ————————
     用正则匹配的方式:
  • <script type="text/javascript">
  • <!--
  • function getQueryStringRegExp(name)
  • {
  • var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
  • if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
  • };
  •  
  • //http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
  • alert(getQueryStringRegExp('test'));
  • //-->
  • </script>
  • ------------




        文章评论
     
    2008-06-08 13:33:09
    文章很不错,也欢迎博主访问我的技术blog:
    http://xiaowang.blog.51cto.com

     

    发表评论

    昵   称:
    验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
    内   容: