提取 url 参数

字符串拆分

function getUrlParams(url) {
    let str = url;
    str = str.split('?')[1];
    let arr = str.split('&');
    let obj = {};
    for (let i = 0; i < arr.length; i++) {
        let tmp_arr = arr[i].split('=');
        obj[encodeURIComponent[tmp_arr[0]]] = encodeURIComponent[tmp_arr[1]];
    }
    arr.forEach(item=>{
        const index = item.indexOf('=')
        if(index !=== -1){
            const name = item.slice(0, index)
            const val = item.slice(index + 1, item.length)
            obj[name] = val
        }
    })
    return obj;
}

正则

function getUrlParams2(url) {
    let reg = /([^&?#=]+)=([^&?#=]\*)/g;
    let obj = {};
    url.replace(reg, (...arg) => {
        let [, arg1, arg2] = arg;
        obj[encodeURIComponent(arg1)] = encodeURIComponent(arg2);
    });
    return obj;
}

原生格式化

function getUrlParams3(url) {
    let str = url.split('?')[1];
    let params = new URLSearchParams(str);
    return params;
}
Last Updated:
Contributors: zhangfei