面试官:写一下解析url参数叭。

210 阅读1分钟

可以通过传统遍历或者正则来解决。

正则

//1.正则
function getUrlParams(url) {
    let reg = /([^?&=]+)=([^?&=]+)/g;
    let obj = {};
    url.replace(reg, function () {
        obj[arguments[1]] = arguments[2]
    })

    return obj
}

//测试
let url = 'https://www.baidu.com?a=asd&bb=zxc&123321=1'
console.log(getUrlParams(url));

传统方式

2.传统方法
function getUrlParams(url) {
    let index = url.indexOf('?');
    let temp = url.slice(index + 1);
    let arr = temp.split('&');
    let obj = {};

    for (let i = 0; i < arr.length; i++) {
        let num = arr[i].indexOf('=');
        obj[arr[i].slice(0, num)] = arr[i].slice(num + 1)
    }

    return obj;
}

//测试
let url = 'https://www.baidu.com?a=asd&bb=zxc&123321=1'
console.log(getUrlParams(url));


记录记录!