一:
function urlToObj(url) {
url = url.split("?")[1];
//"course1=js&course2=css&course3=jQ"
var ary = url.split("&");
//["course1=js","course2=css","course3=jQ"];
var obj = {};
ary.forEach((item) => {
var a = item.split("=");//["course1","js"]
obj[a[0]] = a[1];
});
return obj;
}
二:
function urlToObj(url) {
//按照?,&,=一次性拆分为数组
var ary = url.split(/[?&=]/);
//www.mq1117.cn没有用,所以 删除第一项
ary.shift();//删除第一项
//如果有#,还可以用这个pop掉井号后的
var obj = {};
//["course1","js","course2","css","course3","jQ"]
for (var i = 0; i < ary.length; i += 2) {
//i 索引 0,2,4
//i+1 索引 1,3,5
obj[ary[i]] = ary[i + 1];
}
return obj;
}
三:
function urlToObj(url) {
var reg=/[?&](\w+)=(\w+)/g;
var obj={};
url.replace(reg,function () {
obj[arguments[1]]=arguments[2]
});
return obj
}
四:eval:(url参数里无对象的情况)
function urlToObj(url) {
url = url.split("?")[1];
//"course1 =js &course2 =css& course3= jQ"
return eval("({" + url.replace(/=/g, ":'").replace(/&/g, "',") + "'})");
//"{course1:'js',course2:'css',course3:'jQ'}"
//注意为了区分引号,内部加的是单引号
//{course1: "js ", course2: "css", course3: " jQ"}
}