조회 : 97
//============================================================================
// 쿼리 스트링 파싱.
// ?abc=123&eee=444
// -> obj['abc']= '123';obj['eee']= '444';
//============================================================================
function js_search_to_object(str){
if(str){
var t = str.substr(0,1)
if(t=='?' ||t=='&') var qy = str.substr(1);
else var qy = str;
}else{ var qy = document.location.search.substr(1);
}
var obj = new Object();
var t = qy.split('&');
var tt = Array();
for(var i=0,m=t.length;i<m;i++){
var ts = t[i].indexOf('=');
if(ts!=-1){ tt = Array(t[i].substr(0,ts),t[i].substr((ts+1))); }
else{ tt = Array(t[i],null);}
if(/[^\[]*\[[^\]]*\]$/.test(tt[0])){
var tn = tt[0].match(/([^\[]*)\[([^\]]*)\]$/);
var tk = tn[1];tv = tn[2];
if(tv==''){ //a[]=x 형식 처리
if(obj[tk]==null){obj[tk]= new Array();}
obj[tk].push(decodeURI(tt[1]));
}else{ //a[x]=y 형 처리
if(obj[tk]==null){obj[tk]= new Object();}
obj[tk][tv] = decodeURI(tt[1]);
}
}else{
if(tt[0].length>1) obj[tt[0]] = decodeURI(tt[1]);
}
}
//for(x in obj){alert(x+' = '+obj[x]);} //debug
return obj;
}
원리 설명
?xxx=yyy&aaa=bbb 는 document.location.search 에 들어있는 값
이 값을 가져와서 ?를 빼내고
&로 split(배열로 자르기)를 하고
각 배열의 형식은
aaa=bbb 형식이므로 이배열을 loop 돌려서 다시 =로 split
한 후 배열의 [0]을 key값으로 값고 [1]은 value값으로 잡아서
object에 저장
그 object를 리턴
사용시 연관배열로 생각하고 사용하면 됨.
사용제약은 언제나의 그거.
제목 | 작성자 | 날짜 |
---|---|---|
공대여자 | ||
공대여자 | ||
mins01 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 |