JavaScript获取URL中参数querystring的方法详解

 更新时间:2016年10月11日 11:20:21   投稿:daisy  
这篇文章先给大家介绍了JavaScript获取URL中参数querystring的方法,而后有详解介绍了Location对象的属性和,Location对象的方法,对大家的理解很有帮助,有需要的朋友们可以参考借鉴,下面来一起看看吧。

一. 获取url的querystring参数

获取url的querystring参数的两种方法如下:

1.1 方法一:正则匹配

//获取url中的参数
function getQueryString(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", i); // 匹配目标参数
  var result = window.location.search.substr(1).match(reg); // 对querystring匹配目标参数
  if (result != null) {
    return decodeURIComponent(result[2]);
  } else {
    return null;
  }
}

对于 http://localhost/index.html?q1=abc&q2=efg&q3=h 的url,获取 q1 参数值的方法如下:

var q1 = getQueryString('q1'); // abc

1.2 方法二:split

function getQueryString() {  
  var qs = location.search.substr(1), // 获取url中"?"符后的字串  
    args = {}, // 保存参数数据的对象
    items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
    item = null,
    len = items.length;

  for(var i = 0; i < len; i++) {
    item = items[i].split("=");
    var name = decodeURIComponent(item[0]),
      value = decodeURIComponent(item[1]);
    if(name) {
      args[name] = value;
    }
  }
  return args;
}

对于 http://localhost/index.html?q1=abc&q2=efg&q3=h 的url,获取 q1 参数值的方法如下:

var qs = getQueryString(); 

var q1 = qs["q1"]; // abc

用上面两种getQueryString()方法都能很好地解决获取url的querystring参数问题。就此顺便整理一下Location对象,方便日后学习参考。

二. Location对象的属性

备注:以 http://localhost:80/dir/index.html?q1=abc&q2=efg&q3=h#anchor 为例:

location的这8个属性都是可读写的。

其中,改变location.href会跳转到新的URL页面,而修改location.hash会跳到当前页面中锚点位置。

每次修改window.location的属性(hash除外),页面都会以新的URL重新加载,并在浏览器的历史纪录中生成一条新纪录。

三. Location对象的方法

其中,location.assign(url) 的效果跟下列两行代码的效果完全一样:

window.location = url;
location.href = url;

位于 location.reload() 调用之后的代码可能会也可能不会执行,这取决于网络延迟或系统资源等因素。因此,最好将 location.reload() 放在代码的最后一行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

相关文章

  • JS简单限制textarea内输入字符数量的方法

    JS简单限制textarea内输入字符数量的方法

    这篇文章主要介绍了JS简单限制textarea内输入字符数量的方法,涉及JavaScript响应鼠标及键盘事件处理textarea输入框字符的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 原生js实现无缝轮播图

    原生js实现无缝轮播图

    这篇文章主要为大家详细介绍了原生js实现无缝轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • JavaScript中常用的简洁高级技巧总结

    JavaScript中常用的简洁高级技巧总结

    这篇文章主要给大家总结介绍了关于JavaScript中常用的简洁高级技巧,文中通过示例代码介绍的非常详细,对大家的学习或者使用Javascript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • js canvas实现放大镜查看图片功能

    js canvas实现放大镜查看图片功能

    这篇文章主要为大家详细介绍了js canvas实现放大镜查看图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Bootstrap table使用方法记录

    Bootstrap table使用方法记录

    这篇文章主要为大家详细介绍了Bootstrap table的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 纯JS实现图片验证码功能并兼容IE6-8(推荐)

    纯JS实现图片验证码功能并兼容IE6-8(推荐)

    这篇文章主要介绍了纯JS实现图片验证码功能并兼容IE6-8浏览器,需要的朋友可以参考下
    2017-04-04
  • 通过JS来判断页面控件是否获取焦点

    通过JS来判断页面控件是否获取焦点

    本篇文章主要介绍了通过JS来判断页面控件是否获取焦点的方法。需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 利用js给datalist或select动态添加option选项的方法

    利用js给datalist或select动态添加option选项的方法

    下面小编就为大家分享一篇利用js给datalist或select动态添加option选项的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • js校验开始时间和结束时间

    js校验开始时间和结束时间

    这篇文章主要为大家详细介绍了js校验开始结束时间,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预

    浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预

    下面小编就为大家带来一篇浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论