whatwg-url

中文文档
17.3.0发布于 2026/10/14MITCommonJS构建来源已验证近 30 天下载 10.1亿

WHATWG URL标准的URL API和解析机制的实现

中文使用文档
文档目录7 节
  1. 规范的一致性
  2. API
  3. 这个 URL 和 URLSearchParams 类
  4. 低级URL标准API
  5. whatwg-url/webidl2js-wrapper 模块
  6. 开发说明
  7. 支持whatwg-url

whatwg-url

WHATWG -url是WHATWG的完整实现 URL标准. 它可以独立使用,但它也暴露了许多内部算法,这些算法对于将URL解析器集成到项目中很有用 jsdom。

规范的一致性

whatwg-url目前是最新的,URL规范即将提交 fde3f74。

为 file: url,其 原点未指定, whatwg-url选择使用一个新的不透明源(序列化为 "null").

API

这个 URL 和 URLSearchParams 类

类提供了主API URL 和 URLSearchParams 导出,它在所有方面都遵循规范的行为(包括例如: USVString 转换)。此库的大多数用户都希望使用这些。

低级URL标准API

下面的方法被导出,供jdom等需要实现以下功能的地方使用 HTMLHyperlinkElementUtils. 它们主要操作或返回“内部URL”或 “网址记录” 类型。

这个 stateOverride 参数为以下字符串之一:

URL记录类型有以下API:

应该小心处理这些属性,因为更改它们通常会导致URL记录处于不一致的状态,直到适当调用 basicURLParse 是用来修理的。您可以在URL标准中看到这样的示例,其中有许多步骤序列,如“4”。将上下文对象的url片段设置为空字符串。5. 基本URL解析 输入 使用上下文对象的url作为 url 片段状态为 状态覆盖." 在这两个步骤之间,URL记录处于不可用状态。

规范中“failure”的返回值表示为 null. 也就是像这样的函数 parseURL 和 basicURLParse 可以返回 要么 URL记录 或 null。

这个 parseURLWithValidationErrors 函数返回一个带有 url 属性和a validationErrors 财产。这个 url 属性是URL记录或 null,和 validationErrors 属性是解析时报告的验证错误名称的数组。

const result = parseURLWithValidationErrors("https://example.org/%s");

console.log(result.url === null); // false
console.log(result.validationErrors); // [ "invalid-URL-unit" ]

这个 isValidURLString 函数从URL标准的URL编写部分实现基于语法的有效性检查器。这与解析器验证错误是分开的,所以它可以不同意 parseURLWithValidationErrors() 在某些情况下。通过一项 baseURL URL记录,用于检查相对URL字符串。

whatwg-url/webidl2js-wrapper 模块

该模块导出 URL 和 URLSearchParams 接口包装API 生成的 webidl2js。

开发说明

首先,安装 node . js. 然后,从这个目录下运行,获取whatwg-url的依赖项:

npm install

要运行测试:

npm test

要生成覆盖率报告:

npm run coverage

要构建和运行实时查看器:

npm run prepare
npm run build-live-viewer

服务的内容 live-viewer 目录使用任何web服务器。

支持whatwg-url

jdom项目(包括whatwg-url)是一个社区驱动的项目,由一个团队维护 志愿者. 您可以通过以下方式支持我们:

  • 获得whatwg-url的专业支持 作为Tidelift订阅的一部分。Tidelift帮助我们实现开源的可持续性,同时为团队提供维护、许可和安全性方面的保证。
  • 直接对项目做出贡献。

版本与发布记录

whatwg-url 共发布 77 个版本,首次发布于 2015/06/04;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
17.3.0latest2026/10/1423 天前
17.2.02026/10/041 个月前
17.1.22026/09/211 个月前
17.1.12026/09/101 个月前
17.1.02026/07/074 个月前
17.0.02026/06/294 个月前

关于 whatwg-url 的常见问题

whatwg-url 是什么?

WHATWG URL标准的URL API和解析机制的实现

如何安装 whatwg-url?

在项目目录运行 npm install whatwg-url,或使用 pnpm add / yarn add / bun add。

whatwg-url 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/whatwg-url 是否存在。

whatwg-url 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

whatwg-url 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.14.0 || >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

whatwg-url 可以商用吗?

whatwg-url 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

whatwg-url 的下载量有多少?

根据 npm 官方下载统计,whatwg-url 在 2026/10/06 – 2026/11/04 这 30 天内被下载 1,010,789,409 次,日均约 33,692,980 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

whatwg-url 还在维护吗?

最新版本 17.3.0 发布于 2026/10/14(23 天前);至今共发布 77 个版本,其中过去 12 个月发布了 8 个;首次发布于 2015/06/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。