首页 > 代码库 > url字符串和对象之间的转换
url字符串和对象之间的转换
这里会涉及两个需求,有时候,我们想将获得的url字符串按键值对的形式保存成一个对象,用location.search获得url参数字符串,这里不考虑location.pathname和location.hash。
url字符串对象化
1 var urlToObj = function (){ 2 var search = this.replace(/^\s+|\s+$/, ‘‘).match(/([^?#]*)(#.*)?$/); 3 if( !search ){ 4 return {}; 5 } 6 7 var searchHash = search[1].split(‘&‘); 8 var obj = {}; 9 10 for(var i = 0, len = searchHash.length; i<len; i++){11 var pair = searchHash[i].split(‘=‘);12 if(pair[0]){13 var key = decodeURIComponent(pair[0]);14 var value = http://www.mamicode.com/pair[1];15 if(value != undefined ){16 value =http://www.mamicode.com/ decodeURICoponent(value);17 }18 //这里判断转化后的obj里面有没有重复的属性19 if( key in obj ){20 if( obj [key] != Array ){21 //把属性值变为数组,将另外的属性值也存放到数组中去22 obj [key] = [obj [key]];23 }24 obj [key].push(value);25 }else{26 obj [key] = value;27 }28 }29 }30 31 return obj;32 }; 33 34 //调用可以如下35 urlToObj.call( location.search );
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。