要注意处理编码后的字串 对于a=123要得到number形的值
function parseQueryString(url) { var obj = {}; var query = url.search.slice(1).split('&'); //截取问号之后的部分 query.forEach(function(item){ //若str没有= 返回 [str] //缺失任何一方 则是空字符串 var key = item.split('=')[0]; var value = decodeURIComponent(item.split('=')[1]); //对于数值形字符串要转为数字 value = !isNaN(value) ? +value : value; obj[key] = value; }); return obj; } var link = document.createElement('a'); link.href = "http://www.example.com/some/path?name=123&w=blog%3Acart55free99%20微软%20bootstrap#anchor"; var obj = parseQueryString(link); console.log(obj);
没有直接创建localtion对象的方法 可以创建Anchor的方式来创建一个localtion对象
var link = document.createElement('a');
link.href = "http://www.example.com/some/path?name=123&w=blog%3Acart55free99%20微软%20bootstrap#anchor";