url的query解析

期望输出

获取到所有的 query 参数,组成一个对象。

const url = 'http://domain.com/?user=anonymous&city=chengdu'

parseParam(url)

 

结果:

{

  user:'liujiaqi',

  city: 'yichang'

}

解题分析:

1.使用 & 对字符串进行分割,得到数组

2.去掉数组第一个值 ? 前的字符

3.遍历数组获取对应的 key 和 value

                 数组类型的参数,需要判断特殊处理

                 对象类型的参数,也需要特殊处理

复制代码
const parseParam = (url) => {
    // 分割URL
    let paramArrays = url.split("&");
    // 去除第一个值中的域名
    paramArrays[0] = paramArrays[0].split("?")
    paramArrays[0].shift()
    paramArrays[0] = paramArrays[0].join('?');
    console.log('paramArrays', paramArrays);
    // 定义一个空对象接收 key 和 value
    const obj = {}
    paramArrays.forEach(ele => {
        const itemArr = ele.split('=')
        let key = itemArr[0]
        let val = itemArr[1]
        let arr = []
        if (key.includes('[]')) {
            key = key.replace('[]', '')
            arr.push(val)
        } else if (val.indexOf('{') === 0) {
            val = JSON.parse(val)
        }
        obj[key] = val
        console.log('obj', obj);
    });
}
复制代码

 

posted @   木木的奇奇  阅读(1144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示