【问题标题】:Why the url first parameter is not being considered in Javascript?为什么在 Javascript 中不考虑 url 第一个参数?
【发布时间】:2023-01-30 18:37:26
【问题描述】:
const url = new URLSearchParams('https://example.com?q1=1&q2=2');
console.log(url.has('q3')) // returns false as expected
console.log(url.has('q2')) // returns true as expected
console.log(url.has('q1')) // returns false as NOT expected
为什么会这样?
【问题讨论】:
标签:
javascript
query-string
url-parameters
urlsearchparams
【解决方案1】:
URLSearchParams 构造函数,如果传递了一个字符串,则期望该字符串是一个请求参数而不是完整的网址。
q1没有出现,因为你的第一个参数是https://example.com?q1。
const url = new URLSearchParams('https://example.com?q1=1&q2=2');
console.log([...url.entries()]);
如果要解析完整的 URL,请使用 URL 构造函数。
const url = new URL('https://example.com?q1=1&q2=2');
console.log(url.searchParams.has('q3'))
console.log(url.searchParams.has('q2'))
console.log(url.searchParams.has('q1'))