解析为对象
function parseQuery(url) {
let obj = {};
let queryString = url.split('?')[1];
if (queryString) {
queryString.split('&')
.forEach(item => {
let [key, val] = item.split('=');
val = val ? decodeURI(val) : true;//转码,无值赋值true
if(obj.hasOwnProperty(key)) {
obj[key] = [].concat(o[key], val);//已有属性,转为数组
} else {
obj[key] = val;
}
})
}
return obj;
}
console.log(parseQuery(url));
//{ user: 'huixin',
// id: [ '123', '456' ],
// city: '北京',
// enabled: true }
解析为数组
const url = decodeURI(location.search);//获取url中"?"符后的字串(包括问号)
function parseUrl(url){
var result = [];
var queryArr= url.substr(1).split('&');
queryArr.forEach(function(item){
var obj = {};
var key = item.split("=")[0];
var value = item.split("=")[1];
obj[key] = value;
result.push(obj);
});
return result;
}
console.log(parseUrl(path));//[{id: '2'},{type: '0'},{dtype: '-1'}]