URL의 queryString (qstr,search) 를 연관배열(객체)로 반환하는 함수
/**
- parseQstr
- String qstr : URL의 QueryString, location.search 등
- bool decode : 받은 값을 디코딩 처리할 것인가?(옵션) */ function parseQstr(qstr,decode){ if(decode==undefined){decode = false;} var pt = /(?:\?|&|^)([^&=]+)=([^&=]+)(?:&|$)/; //var arr = qstr.match(pt); //var arr = pt.exec(qstr); var Rs = {}; var arr,k,v; var qarr = qstr.split(‘&’); for(var i=0,m=qarr.length;i<m;i++){ arr = qarr[i].match(pt); if(arr == null) continue; k = arr[1]; if(decode){ v = arr[2]; }else{ v = decodeURIComponent(arr[2].replace(‘+’,’ ‘)); } if(!Rs.hasOwnProperty(k)){ Rs[k] = v; }else if(Rs[k].constructor == String){ Rs[k] = [Rs[k]]; Rs[k].push(v); }else{ Rs[k].push(v); } } return Rs }
var qstr = ‘?UnitId=24006&nick=공대여자&nick=공대여자2&UUN=632a4c164e425e695dbbf243d5ba201b’; var Rs = parseQstr(qstr);
결과는
- Rs: Object
- UUN: ”632a4c164e425e695dbbf243d5ba201b”
- UnitId: ”24006”
- nick: Array[2]
- 0: ”공대여자”
- 1: ”공대여자2”
- length: 2
이런 모양이 됨.
만들고 보니깐 _M 에 거의 같은게 있네…