提取 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;
}