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 相关文章推荐
随机显示经典句子或诗歌的javascript脚本
Aug 04 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
jquery选择器大全 全面详解jquery选择器
Mar 06 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
vue中tab选项卡的实现思路
Nov 25 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 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
APMServ使用说明
2006/10/23 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
div模拟选择框示例代码
2013/11/03 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python中的列表与元组的使用
2019/08/08 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python爬取招聘要求等信息实例
2020/11/20 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
迪奥官网:Dior.com
2018/12/04 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
《胡杨》教学反思
2014/02/16 职场文书
售后服务承诺书范文
2014/03/26 职场文书
工程质量承诺书
2014/03/27 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
老干部工作先进事迹
2014/08/17 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
公司授权委托书
2014/10/17 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
课改心得体会范文
2016/01/25 职场文书
初中语文教学反思范文
2016/03/03 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang