当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js new URL(input[, base])用法及代码示例


new URL(input[, base])

  • input <string> 要解析的绝对或相对输入 URL。如果input 是相对的,则需要base。如果input 是绝对的,则忽略base。如果input 不是字符串,则首先是converted to a string
  • base <string> 如果 input 不是绝对的,则要解析的基本 URL。如果base 不是字符串,则首先是converted to a string

通过解析相对于 baseinput 创建一个新的 URL 对象。如果 base 作为字符串传递,它将被解析为等同于 new URL(base)

const myURL = new URL('/foo', 'https://example.org/');
// https://example.org/foo

URL 构造函数可作为全局对象的属性进行访问。也可以从内置的 url 模块导入:

import { URL } from 'node:url';
console.log(URL === globalThis.URL); // Prints 'true'.console.log(URL === require('node:url').URL); // Prints 'true'.

如果 inputbase 不是有效的 URL,则会抛出 TypeError。请注意,将努力将给定的值强制转换为字符串。例如:

const myURL = new URL({ toString: () => 'https://example.org/' });
// https://example.org/

input 的主机名中出现的 Unicode 字符将使用 Punycode 算法自动转换为 ASCII。

const myURL = new URL('https://測試');
// https://xn--g6w251d/

此函数仅在 node 可执行文件在启用 ICU 的情况下编译时可用。如果不是,则域名原封不动地通过。

如果事先不知道 input 是否是绝对 URL 并且提供了 base,建议验证 URL 对象的 origin 是否是预期的。

let myURL = new URL('http://Example.com/', 'https://example.org/');
// http://example.com/

myURL = new URL('https://Example.com/', 'https://example.org/');
// https://example.com/

myURL = new URL('foo://Example.com/', 'https://example.org/');
// foo://Example.com/

myURL = new URL('http:Example.com/', 'https://example.org/');
// http://example.com/

myURL = new URL('https:Example.com/', 'https://example.org/');
// https://example.org/Example.com/

myURL = new URL('foo:Example.com/', 'https://example.org/');
// foo:Example.com/

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 new URL(input[, base])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。