Chinaunix首页 | 论坛 | 博客
  • 博客访问: 448099
  • 博文数量: 141
  • 博客积分: 211
  • 博客等级: 入伍新兵
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-17 16:25
个人简介

如此经年,望尽千帆。

文章分类

全部博文(141)

文章存档

2014年(73)

2013年(65)

2012年(3)

我的朋友

分类: PHP

2014-04-13 15:41:43

要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。
在网上找到了几个很又简单实用的方法,分享下。
方法一:正则法

  1. function getQueryString(name) {
  2.     var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  3.     var r = window.location.search.substr(1).match(reg);
  4.     if (r != null) {
  5.         return unescape(r[2]);
  6.     }
  7.     return null;
  8. }
  9. // 这样调用:
  10. alert(GetQueryString("参数名1"));
  11. alert(GetQueryString("参数名2"));
  12. alert(GetQueryString("参数名3"));
方法二:split拆分法

  1. function GetRequest() {
  2.     var url = location.search; //获取url中"?"符后的字串
  3.     var theRequest = new Object();
  4.     if (url.indexOf("?") != -1) {
  5.         var str = url.substr(1);
  6.         strs = str.split("&");
  7.         for(var i = 0; i < strs.length; i ++) {
  8.             theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
  9.         }
  10.     } //
  11.     return theRequest;
  12. }
  13. var Request = new Object();
  14. Request = GetRequest();
  15. // var 参数1,参数2,参数3,参数N;
  16. // 参数1 = Request['参数1'];
  17. // 参数2 = Request['参数2'];
  18. // 参数3 = Request['参数3'];
  19. // 参数N = Request['参数N'];
方法三:使用php正则
通过JS获取url参数,这个经常用到。比如说一个url:http://w /?q=js,我们想得到参数q的值,那可以通过以下函数调用即可。

  1. function GetQueryString(name) {
  2.     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  3.     var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
  4.     var context = "";
  5.     if (r != null)
  6.          context = r[2];
  7.     reg = null;
  8.     r = null;
  9.     return context == null || context == "" || context == "undefined" ? "" : context;
  10. }
  11. alert(GetQueryString("q"));
方法四:单个参数的获取方法

  1. function GetRequest() {
  2.    var url = location.search; //获取url中"?"符后的字串
  3.    if (url.indexOf("?") != -1) { //判断是否有参数
  4.       var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
  5.       strs = str.split("="); //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
  6.       alert(strs[1]); //直接弹出第一个参数 (如果有多个参数 还要进行循环的)
  7.    }
  8. }
阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~