前言
在前端开发中,经常需要对 URL 进行处理和转换。而常见的 URL 格式并不标准,包含各种不同的大小写、斜杠、协议等,因此需要使用工具将其标准化。本文将介绍一款基于 npm 的 normalizeurl 包,它可以方便地标准化 URL,并提供了几个常见的 URL 处理功能。
安装
使用 npm 安装 normalizeurl:
npm install normalizeurl
使用
标准化 URL
normalizeurl 的最基本功能是将 URL 标准化。标准化后的 URL 包含以下内容:
- 协议部分(http 或 https)将会被转换为小写;
- 主机名部分将会被转换为小写;
- URL 路径将会被标准化,包括删除多余的斜杆(/)并将 Windows 格式的反斜杠(\)转换为斜杆。
下面是一个简单的示例,演示如何使用 normalizeurl 标准化 URL:
const normalizeUrl = require('normalizeurl'); const unnormalized = 'htTp://www.EXAMPLE.com/foo/%aB%c1%7cbar?q=hello%20world#fragment'; const normalized = normalizeUrl(unnormalized); console.log(normalized); // 'http://www.example.com/foo/%AB%C1%7Cbar?q=hello%20world#fragment'
在这个例子中,我们先将一个非标准的 URL 赋值给变量 unnormalized,然后调用 normalizeUrl() 函数将其标准化。标准化后的 URL 存储在变量 normalized 中,并打印出来。
删除查询参数
normalizeurl 包还提供了一种用于删除查询参数的功能。这对于需要移除跟踪代码或者调试信息等情况特别有用。示例如下:
const normalizeUrl = require('normalizeurl'); const baseUrl = 'https://example.com/path/?q=value&debug=true'; const withoutQuery = normalizeUrl(baseUrl, {stripQuery: true}); console.log(withoutQuery); // 'https://example.com/path/'
在这个例子中,我们传递了一个选项对象作为 normalizeUrl() 的第二个参数,该对象具有 stripQuery 属性,此时这个属性将会被设置为 true。这样就会删除查询参数,保留纯粹的 URL。
删除哈希值
normalizeurl 包还提供了一种用于删除哈希值的功能。这对于只需要基地址,而不是包含哈希的完整 URL 的情况尤其有用。示例如下:
const normalizeUrl = require('normalizeurl'); const fullUrl = 'https://example.com/path#hash'; const withoutHash = normalizeUrl(fullUrl, {stripHash: true}); console.log(withoutHash); // 'https://example.com/path'
在这个例子中,我们传递了一个选项对象作为 normalizeUrl() 的第二个参数,该对象具有 stripHash 属性,此时这个属性将会被设置为 true。这样就会删除哈希值,保留基地址。
结论
normalizeurl 包提供了强大的功能,使得对 URL 进行标准化和转换变得简单。我们可以使用它来删除查询参数和哈希值,或者只是将 URL 标准化。这个工具还提供了许多其他的选项,帮助我们处理各种 URL 场景。在实际工作中,使用 normalizeurl 包可以使我们的工作更加高效。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb777b5cbfe1ea06117b4