Programing

jQuery URL parameter 값 가져오기

handam 2014. 8. 26. 11:33

참조 : http://www.sitepoint.com/url-parameters-jquery/


client 단에서 전역변수로 가지고 있어야 하는 변수가 필요했고, url 매개변수를 split 함수를 


이용하여 코드를 작성하다가 jquery 에서도 지원하는 함수나 오픈소스가 있을까 해서 찾아보았다.


그 중 깔끔한 소스를 찾았다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// JavaScript Code
$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    return results[1] || 0;
}
 
// example.com?param1=name&param2=&id=6
$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null
 
//example params with spaces
http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));  
//output: Gold%20Coast
 
console.log(decodeURIComponent($.urlParam('city')));  
//output: Gold Coast



정규식을 사용하였고 url 매개변수 명을 parameter 변수 명으로 받아서 해당 변수의 값을 return 시킨다.


하지만 위의 소스에는 한 가지 문제점이 있다. 


url 에 해당 변수 명이 없을 때 null 처리를 해주지 않았다는 점이다.


코드를 작성한 글쓴이도 개선된 코드를 남겼다.


1
2
3
4
5
6
7
8
9
10
// JavaScript Code
$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (results==null){
       return null;
    }
    else{
       return results[1] || 0;
    }
}



공통으로 작성하여 사용하도 좋겠다.


반응형