例:创建一个新的 URL 对象
const {URL} = require('url')
//创建一个新的 URL 对象。解析 URL 字符串:解析绝对的 URL
const myURL1 = new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
console.log(myURL1)
//创建一个新的 URL 对象。解析 URL 字符串:解析相对的 URL, 需要在第二个参数传要解析的基本 URL
const myURL2 = new URL('p/a/t/h?query=string#hash', 'https://user:pass@sub.host.com:8080/');
console.log(myURL2)
console.log(myURL1.searchParams.toString())
执行结果:
image.png
例:实例化URLSearchParams对象的几种方法
//实例化一个空的URLSearchParams对象
const params = new URLSearchParams()
params.append('name', 'lupeipei')
params.append('age', 18)
console.log(params.toString())
//将 string 解析成一个查询字符串, 并且使用它来实例化一个新的 URLSearchParams 对象。 如果以 '?' 开头,则忽略.
const myUrl = new URL('https://example.org/?abc=123')
let search = myUrl.search
console.log(search)
const params1 = new URLSearchParams(search)
console.log(params1.get('abc'))
//通过使用查询哈希映射实例化一个新的 URLSearchParams 对象。 obj 的每一个属性的键和值都将被强制转换为字符串。
//数组使用 array.toString() 进行字符串化时,只需用逗号连接所有的数组元素即可。
const obj = {
user: 'abc',
query: ['first', 'second']
}
const params2 = new URLSearchParams(obj)
console.log(params2.toString())
console.log(params2.getAll('query'))
//以一种类似于 Map 的构造函数的迭代映射方式实例化一个新的 URLSearchParams 对象。 iterable 可以是一个 Array 或者任何迭代对象。
const array = [
['user', 'abc'],
['query', 'first'],
['query', 'second']
]
const params3 = new URLSearchParams(array)
console.log(params3.toString())
// 使用 Map 对象。
const map = new Map();
map.set('user', 'abc');
map.set('query', 'xyz');
const params4 = new URLSearchParams(map);
console.log(params4.toString());
执行结果:
image.png
网友评论