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


Posted in Javascript onOctober 11, 2016

一. 获取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 为例:

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

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

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

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

三. Location对象的方法

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

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

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

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

总结

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

Javascript 相关文章推荐
js获取图片大小的函数代码
Sep 20 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
javascript实现table表格隔行变色的方法
May 13 Javascript
JavaScript事件委托实例分析
May 26 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
Vue.use源码学习小结
Jun 20 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
JavaScript中遍历的十种方法总结
Dec 15 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 #Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 #Javascript
javascript 动态样式添加的简单实现
Oct 11 #Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 #Javascript
javascript 动态脚本添加的简单方法
Oct 11 #Javascript
js HTML5上传示例代码完整版
Oct 10 #Javascript
JavaScript  event对象整理及详细介绍
Oct 10 #Javascript
You might like
php中cookie的作用域
2008/03/27 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
删除table表格行的实例讲解
2017/09/21 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Python绘制热力图示例
2019/09/27 Python
雷蛇美国官网:Razer
2020/04/03 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
学校消防安全责任书
2014/07/23 职场文书
公安学专业求职信
2014/07/27 职场文书
党课心得体会范文
2014/09/09 职场文书
小时代观后感
2015/06/10 职场文书
法定代表人资格证明书
2015/06/18 职场文书
晚会开幕词范文
2016/03/04 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python