要求:
输入 https://saber2pr.top/?code=123456#/links
输出 { code: 123456 }
export const parseUrlParam = (url: string) => { if (!url || !url.includes('?')) return {} url = url.split('#')[0] const isNumber = /^\d+$/ return decodeURIComponent(url) .split('?')[1] .split('&') .reduce((out, s) => { const union = s.split('=') const key = union[0] const value = isNumber.test(union[1]) ? Number(union[1]) : union[1] || true if (key in out) { out[key] = [out[key], value] return out } return { ...out, [key]: value, } }, {}) }
或者使用 DOM API 的 new URLSearchParams(new URL(url).search).get
export const toQueryStr = (obj: any) => { if (obj) { for (const key in obj) { if (obj[key] === null || obj[key] === undefined) { delete obj[key] } } return new URLSearchParams(obj).toString() } else { return '' } }