js解析复杂url参数(兼容hash和search)
2021-05-25 | 2,899浏览 | 0评论 | 标签:js获取复杂url参数
如果你想从复杂的url中获取参数,可以试试这个方法:(分别对hash和search参数进行处理)
const queryParams = (href = window.location.href, needDecode = true) => {
const reg = /([^&=]+)=([\w\W]*?)(&|$|#)/g
const { search, hash } = new URL(href);
const args = [search, hash];
let obj = {};
for (let i = 0; i < args.length; i++) {
const str = args[i];
if (str) {
const s = str.replace(/#|\//g, '')
const arr = s.split('?')
if (arr.length > 1) {
for (let i = 1; i < arr.length; i++) {
let res;
while ((res = reg.exec(arr[i]))) {
obj[res[1]] = needDecode ? decodeURIComponent(res[2]) : res[2]
}
}
}
}
}
return obj;
}
//eg.
queryParams('https://denghao.me?a=1'); // => {a:1}
queryParams('https://denghao.me/#/detail?a=1'); // => {a:1}
queryParams('https://denghao.me/?a=1#/detail'); // => {a:1}
queryParams('https://denghao.me/?a=1#/detail?b=2'); // => {a:1,b:2}
(本篇完。有疑问欢迎留言探讨)
热门文章
- 微信小程序“拍照识图”上线(63,758)
- YouTube评论翻译插件《油管评论翻译机》上线了(60,288)
- 基金助手--chrome浏览器插件(45,193)
- 拍照识别彩票结果在线工具(31,943)
- vue+tabs动态组件方案漫谈(26,476)
- 《油管评论翻译机》使用说明书(25,337)
- 网页打印插件Print.js(23,978)
- 自用YouTube抓取评论+翻译工具(23,380)
- YouTube评论导出免费在线工具(18,054)
- px转rem/vw方法小结(17,565)