获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
代码
function getUrlParam(sUrl, sKey) {
// 根据?, #, & 分隔
let list = sUrl.split(/\?|&|#/);
let counter = {};
console.log(list);
for (let i = 0, length = list.length; i < length; i++) {
let cur = list[i];
// 忽略不包含=的
if (cur.indexOf("=") === -1) continue;
let kv = cur.split("=");
console.log(kv);
let key = kv[0];
if (counter[key]) {
// 对于已经包含的key,如果是string,转为array
if (typeof counter[key] === "string") {
counter[key] = [counter[key]];
}
counter[key].push(kv[1]);
} else {
counter[key] = kv[1];
}
}
console.log(counter);
if (sKey) {
return counter[sKey];
} else {
return counter;
}
}