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”或 “网址记录” 类型。
- URL解析器:
parseURL(input, { baseURL, encoding = "UTF-8" }) - URL解析器 验证错误:
parseURLWithValidationErrors(input, { baseURL, encoding = "UTF-8" }) - 有效的URL字符串 检查程序:
isValidURLString(input, { baseURL }) - 基本URL解析器:
basicURLParse(input, { baseURL, url, stateOverride, encoding = "UTF-8" }) - URL序列化器:
serializeURL(urlRecord, excludeFragment) - 主机序列化器:
serializeHost(hostFromURLRecord) - URL路径序列化器:
serializePath(urlRecord) - 序列化一个整数:
serializeInteger(number) - 起源 序列化器:
serializeURLOrigin(urlRecord) - 设置用户名:
setTheUsername(urlRecord, usernameString) - 设置密码:
setThePassword(urlRecord, passwordString) - 有不透明的路径:
hasAnOpaquePath(urlRecord) - 不能有用户名/密码/端口:
cannotHaveAUsernamePasswordPort(urlRecord) - 解码字节百分比:
percentDecodeBytes(uint8Array) - %解码字符串:
percentDecodeString(string)
这个 stateOverride 参数为以下字符串之一:
"scheme start""scheme""no scheme""special relative or authority""path or authority""relative""relative slash""special authority slashes""special authority ignore slashes""authority""host""hostname""port""file""file slash""file host""path start""path""opaque path""query""fragment"
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帮助我们实现开源的可持续性,同时为团队提供维护、许可和安全性方面的保证。
- 直接对项目做出贡献。