JS获取URL中参数值(QueryString)的4种方法分享

 更新时间:2014年04月12日 12:23:26   作者:  
今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。后来想了一下,肯定会有更加简单的方法的!所以在网上找到了几个很又简单实用的方法,mark下。

方法一:正则法

复制代码 代码如下:
function getQueryString(name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
    return null;
}
// 这样调用:
alert(GetQueryString("参数名1"));

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

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



方法二:split拆分法

复制代码 代码如下:
function GetRequest() {
    var url = location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
        }
    }
    return theRequest;
}
var Request = new Object();
Request = GetRequest();
// var 参数1,参数2,参数3,参数N;
// 参数1 = Request['参数1'];
// 参数2 = Request['参数2'];
// 参数3 = Request['参数3'];
// 参数N = Request['参数N'];

方法三:又见正则

通过JS获取url参数,这个经常用到。比如说一个url:http://wwww.jb51.net/?q=js,我们想得到参数q的值,那可以通过以下函数调用即可。

复制代码 代码如下:

function GetQueryString(name) { 
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
    var r = window.location.search.substr(1).match(reg);  //获取url中"?"符后的字符串并正则匹配
    var context = ""; 
    if (r != null) 
         context = r[2]; 
    reg = null; 
    r = null; 
    return context == null || context == "" || context == "undefined" ? "" : context; 
}
alert(GetQueryString("q"));

方法四:单个参数的获取方法

function GetRequest() {
   var url = location.search; //获取url中"?"符后的字串
   if (url.indexOf("?") != -1) {    //判断是否有参数
      var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
      strs = str.split("=");   //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
      alert(strs[1]);          //直接弹出第一个参数 (如果有多个参数 还要进行循环的)
   }
}

 

相关文章

  • JS版微信6.0分享接口用法分析

    JS版微信6.0分享接口用法分析

    这篇文章主要介绍了JS版微信6.0分享接口用法,结合实例形式分析了JS版微信6.0分享功能原理、接口调用方法与相关使用注意事项,需要的朋友可以参考下
    2016-10-10
  • 把字符串按照特定的字母顺序进行排序的js代码

    把字符串按照特定的字母顺序进行排序的js代码

    把字符串按照特定的字母顺序进行排序,下面有个不错的示例,大家可以参考下
    2014-01-01
  • 浅谈几种常用的JS类定义方法

    浅谈几种常用的JS类定义方法

    下面小编就为大家带来一篇浅谈几种常用的JS类定义方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Java前后端分离之权限管理示例分析

    Java前后端分离之权限管理示例分析

    权限管理就是管理用户对于资源的操作。本 CRM 系统的权限(也称作资源)是基于角色操作权限来实现的,即RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联
    2022-08-08
  • 如何学JavaScript?前辈的经验之谈

    如何学JavaScript?前辈的经验之谈

    这篇文章主要介绍了如何学JavaScript?前辈的经验之谈,也就是怎么学前端的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • zTree树形插件异步加载方法详解

    zTree树形插件异步加载方法详解

    这篇文章主要为大家详细介绍了zTree树形插件异步加载的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • JavaScript this指向相关原理及实例解析

    JavaScript this指向相关原理及实例解析

    这篇文章主要介绍了JavaScript this指向相关原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • bootstrap datetimepicker2.3.11时间插件使用

    bootstrap datetimepicker2.3.11时间插件使用

    这篇文章主要为大家详细介绍了bootstrap datetimepicker2.3.11时间插件使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 基于JS实现html中placeholder属性提示文字效果示例

    基于JS实现html中placeholder属性提示文字效果示例

    这篇文章主要介绍了基于JS实现html中placeholder属性提示文字效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • JS+Canvas实现接球小游戏的示例代码

    JS+Canvas实现接球小游戏的示例代码

    本文主要为大家详细介绍了如何利用JS+Canvas实现接球小游戏,文中的示例代码讲解详细,对我们学习有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-06-06

最新评论