题目描述
获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
示例1
输入
http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe
输出
[1, 2, 3]
function getUrlParam(sUrl, sKey) {
var index = sUrl.indexOf('?');
var canshu = sUrl.slice(index + 1);
var params = canshu.split('&');
if (sKey) {
var arr = [];
for (var i = 0; i < params.length; i++) {
var temp = params[i].split('=')
// console.log(temp)
if (temp[0] == sKey) {
arr.push(temp[1]);
}
}
if (arr.length == 1) {
return arr[0];
} else if (arr.length == 0) {
return '';
} else {
return arr;
}
} else {
if (canshu == undefined || canshu == "") {
return {};
} else {
var obj = {};
for (var i = 0; i < params.length; i++) {
var tmp = params[i].split('=');
if (!(tmp[0] in obj)) {
obj[tmp[0]] = []
}
obj[tmp[0]].push(tmp[1])
}
return obj;
}
}
}
console.log(getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe', 'key'))