url 解析

实现一个方法,拆解URL参数中queryString

const url = 'http://sample.com/?a=1&b=2&c=xx&d=2#hash';

const result = { a: '1', b: '2', c: 'xx', d: 2 };

常规解法 

    const dismantle = (url) => {
        const aimUrl = url.split('?').pop().split('#').shift().split('&');
        const res = {};
        aimUrl.forEach(item => {
             const [key, val] = item.split('=');
             res[key] = val;
        });
        return res;
    }
    
正则快速解法

    const getUrlParams = (url)=>{
        const obj = {}
        url.replace(/([^?&]+)=([^&#]+)/g, (_, k, v) => {
            console.log(_,k,v)
            obj[k] = v
        })
        return obj
    }

replace参数详解,也可看下打印结果帮助理解

posted @ 2020-06-30 15:12  萝卜爱吃青菜  阅读(243)  评论(0编辑  收藏  举报