<script>
var url = 'http://www.domain.com/?user=anonymous&id=123&id=456&id=4567&city=%E5%8C%97%E4%BA%AC&d&d&enabled';
var json = parseParam(url);
/**
结果:
{
user: 'anonymous',
id: [123, 456], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型
city: '北京', // 中文
enabled: true, // 未指定值的 key 约定值为 true
}
*/
function parseParam(url){
let data = decodeURI(url.split("?")[1]).split("&");
let json = {};
let i,
len = data.length;
for(i = 0; i < len; i++){
let key = data[i].split("=")[0];
let val = data[i].split("=")[1] || true;
if(typeof val === "string" && isNaN(Number(val)) === false ){
val = Number(val);
}
if(json[key]){
json[key] = Object.prototype.toString.call(json[key]) === "[object Array]"?
json[key] :
[json[key]];
json[key].push(val);
}else{
json[key] = val;
}
}
return json;
}
</script>