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中复制行和删除行的操作实例
Jun 25 Javascript
JavaScript获取路径设计源码
May 22 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
element-ui 关于获取select 的label值方法
Aug 24 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
jQuery实现电梯导航模块
Dec 22 jQuery
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安全配置方法
2007/06/16 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
vue观察模式浅析
2018/09/25 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
Vue实现验证码功能
2019/12/03 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
Python中常见的异常总结
2018/02/20 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
18岁生日感言
2014/01/12 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
求职教师自荐书
2014/06/19 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL