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 相关文章推荐
JQuery this 和 $(this) 的区别
Aug 23 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
jQuery表格行换色的三种实现方法
Jun 27 Javascript
使用js简单实现了tree树菜单
Nov 20 Javascript
JS批量操作CSS属性详细解析
Dec 16 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
前端把html表格生成为excel表格的实例
Sep 19 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
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数据过滤的方法
2013/10/30 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python tornado修改log输出方式
2019/11/18 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
python如何查看网页代码
2020/06/07 Python
Python自动登录QQ的实现示例
2020/08/28 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
楼面经理岗位职责范本
2014/02/18 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
施工安全责任书
2014/04/14 职场文书
入学证明
2015/06/23 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
导游词之日本富士山
2020/01/06 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers