JavaScript三种获取URL参数值的方法

如何获取 URL 中的参数值是 JavaScript 开发中常见的需求。本文将分享三种获取 URL 参数值的方法,具体如下。

方法一:使用 URLSearchParams 对象

在现代浏览器中,可以使用 URLSearchParams 对象获取 URL 参数值。URLSearchParams 对象包含一些方法和属性,用于解析和操作 URL 的查询字符串。

以下是演示如何使用 URLSearchParams 对象获取 URL 参数值的示例代码:

// 实例化 URLSearchParams 对象
const urlParams = new URLSearchParams(window.location.search);

// 获取参数name的值
const name = urlParams.get('name');

// 获取参数age的值,指定默认值为18
const age = urlParams.get('age') || 18;

// 获取所有查询字符串参数
const paramsObj = Object.fromEntries(urlParams.entries());

console.log('name:', name); // 输出参数name的值
console.log('age:', age); // 输出参数age的值
console.log('params:', paramsObj); // 输出所有参数

在上面的示例代码中,我们首先通过实例化 URLSearchParams 对象来获取 URL 查询字符串部分,并利用 get() 方法获取参数 name 的值和 age 的值(如果 age 参数不存在,则使用默认值 18)。

接着,我们使用 entries() 方法获取所有查询字符串参数,并通过 Object.fromEntries() 方法将数组转换为对象。

方法二:使用正则表达式

使用正则表达式获取 URL 参数值是另一种可行的方法。正则表达式可以通过字符串匹配的方式取出 URL 查询字符串中的参数值。

以下是演示如何使用正则表达式获取 URL 参数值的示例代码:

// 定义获取URL参数的函数
function getQueryString(name) {
  const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i');
  const result = window.location.search.substr(1).match(reg);
  if (result) {
    return decodeURIComponent(result[2]);
  }
  return null;
}

// 调用获取URL参数的函数
const name = getQueryString('name');
const age = getQueryString('age') || 18;

console.log('name:', name); // 输出参数name的值
console.log('age:', age); // 输出参数age的值

在上面的示例代码中,我们定义了一个名为 getQueryString 的函数,通过正则表达式获取 URL 查询字符串中指定参数的值。

函数使用了 match() 方法返回一个有关匹配结果的数组,并通过 decodeURIComponent() 方法对参数值进行解码,以防止出现 URL 特殊字符的转义问题。

方法三:使用原生方法

在不支持 URLSearchParams 对象的浏览器中,我们可以使用原生方法获取 URL 参数值。该方法比较繁琐,并且需要了解 URL 查询字符串的格式。

以下是演示如何使用原生方法获取 URL 参数值的示例代码:

// 获取URL参数字符串
const queryString = window.location.search.replace(/^\?/, '');

// 查询参数数组
const queryArray = queryString.split('&');

// 查询参数对象
const queryObj = {};

// 循环处理查询参数
for (let i = 0; i < queryArray.length; i++) {
  const kv = queryArray[i].split('=');
  const k = decodeURIComponent(kv[0]);
  const v = decodeURIComponent(kv[1]);
  queryObj[k] = v;
}

// 获取参数name的值
const name = queryObj.name;

// 获取参数age的值,指定默认值为18
const age = queryObj.age || 18;

console.log('name:', name); // 输出参数name的值
console.log('age:', age); // 输出参数age的值

在上面的示例代码中,我们首先获取 URL 参数字符串,并通过 split() 方法将其转换为数组。接着,我们循环处理数组中的每个查询参数,并通过 decodeURIComponent() 方法对参数进行解码。

最后,我们将所有解码后的查询参数存储在一个对象中,并通过对象的 key 来获取相应的参数值。

以上三种方法均可用于获取 URL 查询参数值,具体选择哪种方法取决于具体需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript三种获取URL参数值的方法 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 利用forever和pm2部署node.js项目过程

    下面是详细的“利用forever和pm2部署node.js项目过程”的攻略。 概述 在使用Node.js开发Web项目时,我们需要将我们的Node.js应用程序部署到服务器上,然后运行该程序。常用的Node.js应用程序部署工具有forever和pm2。 无论你选择哪个工具,它们都能够确保你的Node.js应用程序在服务器上长时间稳定的运行。同时,它们还可以…

    node js 2023年6月8日
    00
  • Node.js爬虫如何获取天气和每日问候详解

    Node.js爬虫获取天气和每日问候详解 在Node.js中,通过爬虫可以获取各种网站上的数据,对于天气查询和每日问候等网站内容,我们同样可以利用Node.js爬虫进行获取。下面我们将分别介绍: 获取天气信息 我们可以使用Node.js发出HTTP请求来获取天气信息,具体步骤如下: 安装got库 在终端中执行以下命令: npm install got 构造请…

    node js 2023年6月8日
    00
  • Node常见的三种安全防范手段详解

    Node常见的三种安全防范手段详解 Node.js虽然广泛应用于Web开发的各个领域,但是它也有一些安全问题,尤其是在网络攻击频发的今天,Node.js和它的应用面临着更多的安全威胁。本文将介绍三种常见的Node.js安全防范手段,帮助开发者确保代码的安全性。 1. 尽量不使用eval()和Function()方法 eval()和Function()方法是一…

    node js 2023年6月8日
    00
  • 浅析vue-router原理

    浅析vue-router原理 背景介绍 在现代Web开发中,前端路由已经成为了一个非常重要的概念之一。使用前端路由可以提升用户体验,避免不必要的页面刷新操作,允许开发者更加自由地组织页面结构,提高Web应用的响应速度和性能。 Vue.js是一款非常流行的JavaScript框架,使用Vue.js开发Web应用时,Vue Router是一个非常重要的工具,它可…

    node js 2023年6月8日
    00
  • Python调用JavaScript代码的方法

    Python 可以通过集成第三方库实现调用 JavaScript 代码。下面我介绍两种主流的方法以及示例说明。 方法一:使用 PyV8 PyV8 是一种 Python 和 JavaScript 之间的双向绑定引擎。通过它我们可以在 Python 中调用 JavaScript 代码,方法如下: 安装 PyV8 !pip install PyV8 使用 PyV8…

    node js 2023年6月8日
    00
  • Node.js实现注册邮箱激活功能的方法示例

    下面是 “Node.js实现注册邮箱激活功能的方法示例” 的完整攻略。 1. 前言 在我们开发一些网站应用时,常常需要实现用户注册,而为了避免有人随意使用网站,我们通常会要求用户进行邮箱激活。本篇攻略将介绍如何基于 Node.js 来实现注册邮箱激活功能。 2. 实现步骤 2.1 生成激活链接 在完成注册后,我们需要通过邮件向用户发送一封包含激活链接的邮件,…

    node js 2023年6月8日
    00
  • Node.js如何对SQLite的async/await封装详解

    Node.js对SQLite的async/await封装可以帮助开发者更方便地在Node.js应用中使用SQLite数据库,同时也避免了回调地狱的问题。下面将详细介绍Node.js对SQLite的async/await封装的攻略。 1. 安装依赖库 使用Node.js对SQLite进行async/await封装,需要安装以下依赖库:- sqlite3模块:用…

    node js 2023年6月8日
    00
  • nodejs实例解析(输出hello world)

    Node.js是基于Chrome V8引擎开发的运行在服务器端的JavaScript运行环境,提供了一种轻量级、高效、可扩展的方式来搭建网络应用程序。下面是如何使用Node.js输出“hello world”的攻略。 准备工作 在开始之前,请确保已经安装了Node.js。可以在命令行中输入以下命令检查是否已经安装: node -v 如果已经安装,则会输出安装…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部