본문 바로가기
프로그래밍/etc. (Language)

[JavaScript] 자바스크립트로 URL 파라미터 값 가져오기

by _BlankSpace 2018. 7. 10.

요즘은 언어들이 사용하기도 편해지고, 퍼포먼스도 꽤나 좋아져서, 한 가지 언어로만 개발하는 추세는 절대 아닌 듯 합니다..


저도 C++을 주력으로 하는 개발을 하고 있지만, 어쩌다보니 자바스크립트를 건드리고 있네요..


아주 간단한 자바스크립트이기 때문에 부담스럽지는 않지만..


이번 기회에 자바스크립트도 알 수 있으면 더욱 좋은 기회가 아닐까 싶어서, 생각날 때마다 정리해보려고 합니다.


이번 포스팅에서 정리하려는 내용은 자바스크립트를 이용하여 URL 내용에서 파라미터 값을 가져오는 방법입니다.


쉽게 설명하면 다음과 같습니다.

1
http://blankspace-dev.tistory.com?age=99&name=blankspace
cs

위에 주소에서 age를 함수에 입력하면 99라는 값을 얻고, name을 blankspace 라는 값을 얻고자 하는 함수를 만들어 보려고 합니다.


1
2
3
4
5
6
7
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    return results[2];
}
cs

위 함수를 이용하면, 위에 예로 설명한 url에서 각각의 값들을 가져올 수 있습니다.


함수 설명은 다음과 같습니다.

먼저, 함수 인자로 파라미터의 name과 url을 받습니다.

이때, url을 받지 않아도 되는 데, url을 입력하지 않을 경우에 아래 함수에서 현재의 url을 가져오는 코드입니다.

1
if (!url) url = window.location.href;
cs


이제, url을 name에 따라 값을 가져올 수 있도록 가공해야겠죠.

그래서 아래와 같은 replace와 정규식을 이용하여 url을 변경합니다.

1
2
3
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
cs


이후, results[2]로 값을 가져오면, name에 따른 값을 가져올 수 있습니다.


사용 방법은 다음과 같습니다.

기존 url뒤에 ?age=99&name=blankspace 라고 적습니다.

1
2
3
var age = getParameterByName('age'); // "99"
var name = getParameterByName('name'); // "blankspace"
var blank = getParameterByName('blank'); // "" 해당하는 값이 없
cs


직접, html 코드에 적용해봤기 때문에 잘 될겁니다.

이상 포스팅을 마치겠습니다.


서로 이웃 추가는 항상 환영입니다. :)

댓글