JavaScript URL Parameter parsing (파라미터 가져오기)
JavaScript 에서는 URL Parameter를 파싱해주는 기본적으로 제공하는 함수가 없어서 직접 만들어서 사용해야 합니다.
자주 쓰이는 것 같아 정리하고자 합니다.
function getURLParams(url) {
var result = {};
url.replace(/[?&]{1}([^=&#]+)=([^&#]*)/g, function(s, k, v) { result[k] = decodeURIComponent(v); });
return result;
}
많은 방법이 있겠지만 저는 정규식을 사용한 방법을 사용하고 있습니다.
간단하게 설명을 해드리자면,
인자값으로 받은 url 변수의 문자열에서,
'?'혹은 '&' 한개로 시작해서 '=', '&', '#'가 아닌 문자가 1개이상 나온 뒤, '=' 문자가 나오고 '&', '#' 이 아닌 문자가 0개 이상 나오는 문자열을 모두 찾은 뒤,
첫번째 그룹 지어준 부분인 ([^=&#]+)에 해당하는 문자열을 key로, 두번째 그룹 지어준 부분인 ([^&#]*)에 해당하는 문자열을 URI decoding 해준 값을 value로 가지는 배열을 만들어서 반환 시켜줍니다.
만약 URL이 "https://jsikim1.tistory.com/112?param1=value1¶m2=value2¶m3=value3#id1" 라면,
s | k | v |
?param1=value1 | param1 | value1 |
¶m2=value2 | param2 | value2 |
¶m3=value3 | param3 | value3 |
위 표와 같이 나올 것입니다.
위 사진과 같이 원하는 결과가 잘 나옵니다.
만약 현재 url값을 파싱하고 싶으시다면
getURLParams(location.search);
위 코드와 같이 location.search를 넣어주시면 되겠죠?
이상으로 JavaScript 에서 URL 파라미터 가져오는 방법에 대해 알려드렸습니다.
제 글에 잘못된 정보, 더 좋은 방법 혹은 정보,
궁금하신 점, 요청 사항 등이 있으시다면 언제든지 말씀해 주세요!
감사합니다.
'Developer > JavaScript' 카테고리의 다른 글
How to check jQuery version - jQuery 버전 확인 방법 (0) | 2021.02.23 |
---|---|
JavaScript MutationObserver 사용 방법 - HTML Dom 변경 감지 방법 (0) | 2021.01.22 |
JavaScript 날짜와 날짜 사이 모든 날짜 구하기 (0) | 2020.09.30 |
JavaScript 날짜 계산 방법(어제, 한달 전, 일년 전, 내일, 한달 후, 일년 후 구하기, 날짜 더하기, 날짜 빼기) (0) | 2020.09.24 |
JavaScript 현재 날짜, 시간 가져오기 (년, 월, 일, 시, 분, 초 구하기) (0) | 2020.09.24 |
댓글