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 数组的 uniq 方法
Jan 23 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
Aug 22 Javascript
深入理解angularjs过滤器
May 25 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
深入理解Angular.JS中的Scope继承
Jun 04 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
May 14 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 Javascript
原生JavaScript实现滑动拖动验证的示例代码
Dec 06 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
简单易用的计数器(数据库)
2006/10/09 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
spyder常用快捷键(分享)
2017/07/19 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python3解释器知识点总结
2019/02/19 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
keras得到每层的系数方式
2020/06/15 Python
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
幼儿教育感言
2014/02/05 职场文书
银行求职信怎么写
2014/05/26 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
初婚初育证明范本
2015/06/18 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
Python实现Hash算法
2022/03/18 Python