var url = "http://taobao.com/shopping.html?a=1&a=4&b=2&a=8&c=&d=xxx&e"; function analyseUrl(url){ if(url.indexOf("1") != -1){ // 定义一个对象用于存储信息 var obj = {}; // 获取带有参数的部分 var str = url.substr(url.indexOf("?") + 1); // 根据&进行首次分割, var firstArr = str.split("&"); // 对数组进行遍历,对每一项根据进行=进行分割 for(var i = 0; i < firstArr.length; i++){ // 先判断是否存在= if(firstArr[i].indexOf("=") != -1){ // 存在 // 为了防止相同的覆盖,进行判断 var secondArr = firstArr[i].split("="); if(obj[secondArr[0]]){ // 已存在,判断是否是一个数组 if(Array.isArray(obj[secondArr[0]])){ obj[secondArr[0]].push(secondArr[1]); }else{ var arrX = [obj[secondArr[0]]]; arrX.push(secondArr[1]); obj[secondArr[0]] = arrX; } }else{ //不存在,直接存入 obj[secondArr[0]] = secondArr[1]; } }else{ // 不存在 obj[firstArr[i]] = "undefined"; } } return obj; } } console.log(analyseUrl(url));