📜  节点 | URL.hash API(1)

📅  最后修改于: 2023-12-03 15:27:45.495000             🧑  作者: Mango

节点 | URL.hash API

在 Web 开发中,URL(统一资源定位符) 是非常重要的。URL 是用于定位网络上的一个资源(一段文本、一张图片、一段视频等)的标识。一个 URL 通常由以下几个部分组成:

  • 协议(protocol): URL 的第一部分通常是协议的名称,例如 http://https://
  • 主机(hostname): URL 的第二部分是主机名或域名,例如 www.google.com
  • 端口(port): URL 的第三部分指定了 Web 服务器的端口号(如果有的话)。
  • 路径(path): URL 的第四部分指定了请求的资源的路径,例如 /images/pic.jpg
  • 查询参数(query parameters): URL 的第五部分是可选的,并描述了请求的资源的更多信息。
  • 哈希(hash): URL 最后一部分是哈希标识符,它是指向网页内部分段的内部定位符(页面锚点)。

在本文中,我们将讨论 URL 哈希部分和其在 Node.js 中的 API。

URL.hash

URL.hash 属性返回 URL 的哈希部分(含 # 符号),如果没有,则返回空字符串。例如:

const url = new URL('https://www.google.com/search?q=nodejs&tbs=qdr:y#scroll-to-text');
console.log(url.hash); // #scroll-to-text

如果你不喜欢含 # 符号的哈希部分,可以使用 url.hash.slice(1) 来去掉它,例如:

const url = new URL('https://www.google.com/search?q=nodejs&tbs=qdr:y#scroll-to-text');
console.log(url.hash.slice(1)); // scroll-to-text
URLSearchParams

如果您需要访问 URL 查询参数(即查询字符串),请使用 URLSearchParams。URLSearchParams 是一个内置对象,用于处理 URL 的查询参数部分。

例如,我们有以下 URL:

const url = new URL('https://www.google.com/search?q=nodejs&tbs=qdr:y#scroll-to-text');

我们可以使用 URLSearchParams 获取查询参数部分:

const params = new URLSearchParams(url.search);
console.log(params.toString()); // q=nodejs&tbs=qdr:y

或者,我们可以使用 params.get 方法获取查询参数中的某个值:

console.log(params.get('q')); // nodejs
console.log(params.get('tbs')); // qdr:y

您还可以使用 params.set 方法设置查询参数的值:

params.set('tbs', 'qdr:w'); // 将 tbs 的值设置为 "qdr:w"
console.log(params.toString()); // q=nodejs&tbs=qdr:w

如果您想要删除查询参数,请使用 params.delete 方法,例如:

params.delete('tbs'); // 删除 tbs 参数
console.log(params.toString()); // q=nodejs
结论

URL.hash 和 URLSearchParams 是处理 URL 中的哈希和查询参数的两个常用 API。通过使用这些 API,您可以轻松地访问 URL 中的相关信息,并对其进行操作。