JavaScript 获取 URL 查询参数及 Location 对象详解

作者:拾光

时间:2026-10-30

浏览:488

本文详解 JavaScript 中获取 URL 查询字符串(querystring)的两种常用方法:正则匹配与 split 分割,并系统梳理 Location 对象的属性与方法。通过具体代码示例展示如何提取参数值,解析 href、hash 等属性的读写行为,以及 assign 和 reload 方法对页面跳转与刷新的影响,帮助开发者掌握前端 URL 处理的核心技巧。

文章目录

获取 URL 查询参数

一、获取 URL 的 querystring 参数

在 JavaScript 开发中,提取 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;
  }
}

假设当前 URL 为 http://localhost/index.html?q1=abc&q2=efg&q3=h,若需获取参数 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;
}

针对相同的 URL http://localhost/index.html?q1=abc&q2=efg&q3=h,通过 split 方法分割字符串也是获取 q1 参数值的另一种有效途径。


var qs = getQueryString(); 

var q1 = qs["q1"]; // abc

上述两种 getQueryString() 方法均能高效解决 URL 查询参数的提取问题。在此基础上,进一步整理 Location 对象的特性,有助于后续相关功能的开发与维护。

Location 对象属性与方法

二、Location 对象的属性

以下说明以 http://localhost:80/dir/index.html?q1=abc&q2=efg&q3=h#anchor 为例进行解析。

获取 URL 查询参数

Location 对象包含的 8 个属性均支持读写操作。

修改 location.href 会导致页面跳转至新的 URL;而修改 location.hash 则仅在当前页面内跳转至指定的锚点位置,不触发重新加载。

除 hash 属性外,修改 window.location 的其他属性都会导致页面以新 URL 重新加载,并在浏览器历史记录中生成一条新记录。

三、Location 对象的方法

获取 URL 查询参数

其中,location.assign(url) 的执行效果与以下两行代码完全一致:


window.location = url;
location.href = url;

需要注意的是,位于 location.reload() 调用之后的代码是否执行,取决于网络延迟或系统资源状况。因此,建议将 location.reload() 放置在代码块的最后一行,以确保操作完成。

总结

以上内容涵盖了本文的核心知识点,希望能为读者的学习或工作提供实际帮助。如有任何疑问,欢迎留言交流。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章