url截取

<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>

  

posted on 2017-12-22 17:16  刘先坤  阅读(363)  评论(0)    收藏  举报

导航