url.format(URL[, options])


  • URL <URL> WHATWG URL 对象。
  • options <Object>

    • auth <boolean> 如果序列化的 URL 字符串应该包含用户名和密码则为 true,否则为 false默认值: true
    • fragment <boolean> 如果序列化的 URL 字符串应该包含分段则为 true,否则为 false默认值: true
    • search <boolean> 如果序列化的 URL 字符串应该包含搜索查询则为 true,否则为 false默认值: true
    • unicode <boolean> 如果出现在 URL 字符串主机元素里的 Unicode 字符应该被直接编码而不是使用 Punycode 编码则为 true默认值: false
  • 返回: <string>

返回代表 WHATWG URL 对象的可自定义序列化的 URL String

虽然 URL 对象的 toString() 方法和 href 属性都可以返回 URL 的序列化的字符串。 然而,两者都不可以被自定义。 而 url.format(URL[, options]) 方法允许输出的基本自定义。

const myURL = new URL('https://a:b@測試?abc#foo');

console.log(myURL.href);
// 打印 https://a:b@xn--g6w251d/?abc#foo

console.log(myURL.toString());
// 打印 https://a:b@xn--g6w251d/?abc#foo

console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));
// 打印 'https://測試/?abc'
  • URL <URL> A WHATWG URL object
  • options <Object>

    • auth <boolean> true if the serialized URL string should include the username and password, false otherwise. Default: true.
    • fragment <boolean> true if the serialized URL string should include the fragment, false otherwise. Default: true.
    • search <boolean> true if the serialized URL string should include the search query, false otherwise. Default: true.
    • unicode <boolean> true if Unicode characters appearing in the host component of the URL string should be encoded directly as opposed to being Punycode encoded. Default: false.
  • Returns: <string>

Returns a customizable serialization of a URL String representation of a WHATWG URL object.

The URL object has both a toString() method and href property that return string serializations of the URL. These are not, however, customizable in any way. The url.format(URL[, options]) method allows for basic customization of the output.

const myURL = new URL('https://a:b@測試?abc#foo');

console.log(myURL.href);
// Prints https://a:b@xn--g6w251d/?abc#foo

console.log(myURL.toString());
// Prints https://a:b@xn--g6w251d/?abc#foo

console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));
// Prints 'https://測試/?abc'