function _parserUrl(tourl)//解析URL并转换为json形式
{
if(!tourl)return;
var paramsArr=tourl.split('?')[1].split('&');
var args={},argsStr=[],param,name,value;
args['url']=encodeURIComponent(tourl.split('?')[0]); //首先载入url,问号"?"前面的部分
for(var i=0;i<paramsArr.length;i++){
param=paramsArr[i].split('=');
name=param[0],value=param[1];
if(name=="")name="unkown";
if(typeof args[name]=="undefined"){ //参数尚不存在
args[name]=value;
}else if(typeof args[name]=="string"){ //参数已经存在则保存为数组
args[name]=[args[name]];
args[name].push(value);
}else{ //已经是数组的
args[name].push(value);
}
}
var showArg=function(x){ //转换不同数据的显示方式
if(typeof(x)=="string"&&!/\d+/.test(x)) return "'"+x+"'"; //字符串
if(x instanceof Array) return "["+x+"]"; //数组
return x; //数字
}
args.toString=function(){//组装成json格式
for(var i in args) argsStr.push(i+':'+showArg(args[i]));
return '{'+argsStr.join(',')+'}';
}
return args; //以json格式返回获取的所有参数
}
返回的args是json形式{x1:1,x2:'2'}
{
if(!tourl)return;
var paramsArr=tourl.split('?')[1].split('&');
var args={},argsStr=[],param,name,value;
args['url']=encodeURIComponent(tourl.split('?')[0]); //首先载入url,问号"?"前面的部分
for(var i=0;i<paramsArr.length;i++){
param=paramsArr[i].split('=');
name=param[0],value=param[1];
if(name=="")name="unkown";
if(typeof args[name]=="undefined"){ //参数尚不存在
args[name]=value;
}else if(typeof args[name]=="string"){ //参数已经存在则保存为数组
args[name]=[args[name]];
args[name].push(value);
}else{ //已经是数组的
args[name].push(value);
}
}
var showArg=function(x){ //转换不同数据的显示方式
if(typeof(x)=="string"&&!/\d+/.test(x)) return "'"+x+"'"; //字符串
if(x instanceof Array) return "["+x+"]"; //数组
return x; //数字
}
args.toString=function(){//组装成json格式
for(var i in args) argsStr.push(i+':'+showArg(args[i]));
return '{'+argsStr.join(',')+'}';
}
return args; //以json格式返回获取的所有参数
}
返回的args是json形式{x1:1,x2:'2'}
本文介绍了一个用于解析URL参数并将其转换为JSON格式的JavaScript函数。该函数能够处理各种类型的URL参数,包括重复的参数名,并将它们组织成易于操作的数据结构。
940

被折叠的 条评论
为什么被折叠?



