获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组
function getUrlParam(sUrl, sKey) {
sUrl = sUrl.toString();
let allUrl = sUrl.split("?")[1].split("#")[0];
if(sKey) {//指定参数名
var strs = allUrl.split("&")
var paramsArr = new Array()
for(var i = 0,len = strs.length;i<len;i++){
var temp = strs[i].split("=")
if(temp[0] === sKey) {
paramsArr.push(temp[1])
}
}
if(paramsArr.length === 0){ //找不到指定参数
return ""
}
else if(paramsArr.length === 1) { //只匹配到一个唯一key
return paramsArr[0]
}
else { //多个同名参数key
return paramsArr
}
}else { //不指定参数名
if(allUrl === undefined || allUrl === ""){ //路径无参
return {}
}
var strs = allUrl.split("&")
var objArr = new Object()
for(var i=0,len=strs.length;i<len;i++) { //遍历所有参数值
var temp = strs[i].split("=")
if(!(temp[0] in objArr)) {
objArr[temp[0]] = []
}
objArr[temp[0]].push(temp[1])
}
return objArr
}
}
let params = getUrlParam("http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe","key")
console.log(params)