自己尝试写的:
1 2 3 4 5 6 7 8 9 10 11
| function parser(urlStr, key) { const url = new URL(urlStr) const map = new Map const paramsArr = url.search.match(/\?(\S+)/)[1].split('&') console.log(paramsArr) return new Map(paramsArr.map(item => { const parts = item.split('=') return [parts[0], parts[1]] })).get(key) }
|
个人认为主要考的是如何用正则取出数据,字符串方法也可以做
解析整个url参数:
1 2 3 4 5 6 7
| function query(name) { const search = location.search.substr(1) const res = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i')
const res = search.match(reg) return res[2] }
|
或者直接使用URLSearchParams对象
1 2 3 4 5 6
| function query(name) { const search = location.search const p = new URLSearchParams(search)
return p.get(name) }
|
TODO: vue-router的方法