<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h3>题目描述</h3>
<p>获取url中的参数</p>
<p>1.指定参数名称,返回该参数的值或者空字符串</p>
<p>2.不指定参数名称,返回全部的参数对象或者{}</p>
<p>3.如果存在多个同名参数,则返回数组</p>
<p>
示例:<br/>
输入:http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe<br/>
输出:[1, 2, 3]
</p>
<p>实现的思路:主要应用的是split()方法</p>
<script>
function getUrlParam(sUrl, sKey) {
//获取参数
var param=sUrl.split("#")[0].split("?")[1];
//如果指定参数名称
if(sKey){
//通过一个数组来存储值
var arrs=new Array();
var keyVals=param.split("&");
for(var i=0,len=keyVals.length;i<len;i++){
var keyVal=keyVals[i].split("=");
if(keyVal[0]==sKey){
arrs.push(keyVal[1]);
}
}
if(arrs.length==1){
return arrs[0];
}else if(arrs.length==0){
return "";
}else{
return arrs;
}
}else{
//声明一个对象
var obj=new Object();
if(param==undefined||param==""){
return {};
}else{
var keyVals=param.split("&");
for(var i=0,len=keyVals.length;i<len;i++){
var keyVal=keyVals[i].split("=");
if(!(keyVal[0] in obj)){
obj[keyVal[0]]=[];
}
obj[keyVal[0]].push(keyVal[1]);
}
return obj;
}
}
}
var url="http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe";
var key="key";
console.log(getUrlParam(url));
</script>
</body>
</html>