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实时监听input框输入值

    如何利用原生JS实时监听input框输入值

    这篇文章主要介绍了如何利用原生JS实时监听input框输入值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • JS 自定义带默认值的函数

    JS 自定义带默认值的函数

    今天与同事一起看了一个javscript定义函数问题,如何在定义一个函数里给参数一个默认值.
    2011-07-07
  • 微信小程序中post方法与get方法的封装

    微信小程序中post方法与get方法的封装

    这篇文章主要介绍了微信小程序中post方法与get方法的封装的相关资料,希望通过本文能帮助到大家,让大家掌握如何封装,需要的朋友可以参考下
    2017-09-09
  • JavaScript实现的使用键盘控制人物走动实例

    JavaScript实现的使用键盘控制人物走动实例

    这篇文章主要介绍了JavaScript实现的使用键盘控制人物走动实例,也可说是一个JS实现的小人走动小游戏,需要的朋友可以参考下
    2014-08-08
  • JavaScript 闭包在封装函数时的简单分析

    JavaScript 闭包在封装函数时的简单分析

    近才开始系统的研究js,对js的兴趣源于对JQuery的应用。之前只会用js做简单的计算函数,后来由于需要做特效,故接触JQ,看着API,基本的特效都能完成,但相反,如果用js去实现,估计自己很难写得出来,所以下定决心系统的看看js。
    2009-11-11
  • JavaScript中奇葩的假值示例应用

    JavaScript中奇葩的假值示例应用

    这篇文章主要介绍了JavaScript中奇葩的假值应用,需要的朋友可以参考下
    2014-03-03
  • 微信小程序实现多列选择器

    微信小程序实现多列选择器

    这篇文章主要为大家详细介绍了微信小程序实现多列选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • javascript获取当前的时间戳的方法汇总

    javascript获取当前的时间戳的方法汇总

    这篇文章主要介绍了javascript获取当前的时间戳的方法汇总的相关资料,需要的朋友可以参考下
    2015-07-07
  • JS实现浏览器状态栏文字从右向左弹出效果代码

    JS实现浏览器状态栏文字从右向左弹出效果代码

    这篇文章主要介绍了JS实现浏览器状态栏文字从右向左弹出效果,涉及JavaScript结合时间函数遍历字符串及动态改变状态栏显示效果的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • JavaScript实现消息框示例

    JavaScript实现消息框示例

    这篇文章主要为大家详细介绍了JavaScript实现消息框示例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论