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 学习笔记 防止发生命名冲突
Jul 30 Javascript
jQuery.extend 函数详解
Feb 03 Javascript
jquery实现简单易懂的图片展示小例子
Nov 21 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
javascript生成大小写字母
Jul 03 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
React Native 搭建开发环境的方法步骤
Oct 30 Javascript
vue 根据数组中某一项的值进行排序的方法
Aug 30 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 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 批量删除 sql语句
2009/06/05 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
纯JS实现轮播图
2017/02/22 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
vue-cli随机生成port源码的方法
2019/09/02 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python读取Excel的方法实例分析
2015/07/11 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
护士节慰问信
2015/02/15 职场文书
物流业务员岗位职责
2015/04/03 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL