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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
用js实现键盘方向键翻页功能的代码
Jun 03 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
Dec 07 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
Vuejs+vue-router打包+Nginx配置的实例
Sep 20 Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
微信小程序实现商城倒计时
Nov 01 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
JavaScript实现简单拖拽效果
Sep 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
php5 and xml示例
2006/11/22 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
php表单处理操作
2017/11/16 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
业务员的岗位职责
2014/03/15 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
Elasticsearch 数据类型及管理
2022/04/19 Python