일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vscode
- IntelliJ
- input
- windows
- 이탈리아
- 자바
- CMD
- 인텔리제이
- 배열
- 테이블
- html
- CSS
- Eclipse
- list
- table
- 자바스크립트
- Button
- json
- Files
- js
- string
- javascript
- Maven
- 이클립스
- Array
- ArrayList
- 문자열
- Java
- date
- Visual Studio Code
- Today
- Total
어제 오늘 내일
[Javascript] URL 파라미터 값 가져오기 (쿼리스트링 값) 본문
Javascript에서 URL에 포함된 파라미터(쿼리스트링)의 값을 읽어오는 방법입니다.
- 현재 페이지의 URL과 파라미터 읽기
- 특정 파라미터 값 읽기
- 특정 파라미터가 있는지 체크하기
- 파라미터 추가, 변경, 삭제하기
- 전체 파라미터 목록 가져오기
1. 현재 페이지의 URL과 파라미터 읽기
현재 페이지의 URL을 가져오는 방법과 쿼리스트링을 가져오는 방법은 지난 포스팅에서 소개했습니다.
간단하게 다시 정리하면
현재 페이지의 URL을 가져오기 위해서는 아래와 같이 하고,
// "https://hianna.tistory.com/325?category=764998"
window.location.href
전체 URL중 쿼리스트링(파라미터)만 가져오고 싶은 경우에는 아래 속성을 참조합니다.
// "?category=764998"
window.location.search
2. 특정 파라미터 값 읽기
https://dic.daum.net/word/view.do?wordid=ekw000033653&q=coffee
위 URL에는 'wordid', 'q'. 이렇게 2개의 파라미터가 있습니다.
전체 URL에서 'wordid'의 값, 'q'의 값을 읽을 수 있습니다.
const url = new URL("https://dic.daum.net/word/view.do?wordid=ekw000033653&q=coffee");
// URLSearchParams 객체
const urlParams = url.searchParams;
// URLSearchParams.get()
document.write(urlParams.get('wordid') + '<br>'); // ekw000033653
document.write(urlParams.get('q') + '<br>'); // coffee
// URLSearchParams.getAll()
document.write(urlParams.getAll('q') + '<br>'); // ['coffee']
const url = new URL("URL문자열")
new URL()을 사용하여 생성된 URL 객체는, URL의 여러 구성 요소를 쉽게 다룰 수 있도록 도와줍니다.
url.searchParams
URL 객체중 searchParams 속성은, URL의 파라미터를 다룰 수 있는 객체인 URLSearchParams 객체를 리턴합니다.
urlParams.get('파라미터명')
URLSearchParams.get() 함수는 URL의 쿼리스트링에서 '파라미터명'으로 조회된 첫번째 값을 리턴합니다.
urlParams.getAll('파라미터명')
URLSearchParams.getAll() 함수는 URL의 쿼리스트링에서 '파라미터명'으로 조회된 모든 값을 배열로 리턴합니다.
위 예제에서는 쿼리스트링에 중복되는 파라미터가 없으므로,
'coffee' 값 1개만을 가지는 배열이 출력되었습니다.
3. 특정 파라미터가 있는지 체크하기
const urlParams
= new URLSearchParams("?wordid=ekw000033653&q=coffee");
// URLSearchParams.has()
document.writeln(urlParams.has('wordid')); // true
document.writeln(urlParams.has('name')); // false
new URLSearchParams("쿼리스트링");
URLSearchParams에 쿼리스트링을 전달하여,
URLSearchParams 객체를 직접 생성할 수도 있습니다.
urlParams.has('파라미터명')
URLSearchParams.has() 함수를 사용하면,
쿼리스트링에 '파라미터명'에 해당하는 파라미터가 있는지 확인 할 수 있습니다.
4. 파라미터 추가, 변경, 삭제하기
URLSearchParams 객체의 메서드를 사용하여 파라미터를 추가, 삭제할 수도 있습니다.
const urlParams
= new URLSearchParams("?wordid=ekw000033653&q=coffee");
// 파라미터 추가(append())
urlParams.append('lang', 'ko');
urlParams.append('lang', 'en');
document.write(urlParams + '<br>'); //wordid=ekw000033653&q=coffee&lang=ko&lang=en
// 파라미터 변경(set())
urlParams.set('lang', 'cn');
document.write(urlParams + '<br>'); // wordid=ekw000033653&q=coffee&lang=cn
urlParams.set('page', '1');
document.write(urlParams + '<br>'); // wordid=ekw000033653&q=coffee&lang=cn&page=1
// 파라미터 삭제
urlParams.delete('lang');
document.write(urlParams); // wordid=ekw000033653&q=coffee&page=1
파라미터 추가
urlParams.append('파라미터명', '값')
URLSearchParams.append() 메소드의 파라미터로 전달 된 2개의 값 파라미터에 추가합니다.
위 예제에서 'lang' 파라미터를 2번 추가하고,
2개의 key가 같은 파라미터가 추가된 것을 확인할 수 있습니다.
파라미터 변경
urlParams.set('파라미터명', '값')
URLSearchParams.set() 메소드를 이용하면,
기존의 파라미터 값을 변경할 수 있습니다.
만약 같은 key값이 여러개 존재하면 (위 예제처럼),
나머지는 모두 제거하고 1개만 남기고, 그 값을 변경합니다.
만약, 해당 파라미터가 존재하지 않으면 append() 처럼 파라미터를 새로 생성합니다.
파라미터 삭제
urlParams.delete('파라미터명')
URLSearchParams.delete() 메소드를 사용하면
파라미터의 값을 삭제할 수 있습니다.
이 메소드는 전달된 '파라미터명'인 모든 파리미터를 삭제합니다.
5. 전체 파라미터 목록 가져오기
key 목록 가져오기 - URLSearchParams.keys()
const urlParams
= new URLSearchParams("?wordid=ekw000033653&q=coffee");
// key 목록
const keys = urlParams.keys();
for(const key of keys) {
document.write(key + '<br>')
}
URLSearchParams.keys() 메소드는 key 목록을 순회할 수 있는 iterator를 반환합니다.
위 예제와 같은 방법으로 key 목록을 가져올 수 있습니다.
value 목록 가져오기 - URLSearchParams.values()
const urlParams
= new URLSearchParams("?wordid=ekw000033653&q=coffee");
// value 목록
const values = urlParams.values();
for(const value of values) {
document.write(value + '<br>')
}
URLSearchParams.values() 메소드는 value 목록을 순회할 수 있는 iterator를 반환합니다.
key, value 목록 가져오기 - URLSearchParams.entries()
const urlParams
= new URLSearchParams("?wordid=ekw000033653&q=coffee");
// value 목록
const entries = urlParams.entries();
for(entry of entries) {
document.write(`${entry[0]}, ${entry[1]} <br>`)
}
URLSearchParams.entries() 메소드는 key/value 목록을 순회할 수 있는 iterator를 반환합니다.
URL의 파라미터를 받아와서 key, value를 활용하는 방법을 알아보았습니다.
주의해야 할 것은,
이 포스팅에서 소개한 URL, URLSearchParams 객체는
인터넷 익스플로러와 사파리 일부 버전에서는 사용할 수 없다는 것입니다.
사용가능 브라우저는 아래 링크를 참조하세요.
developer.mozilla.org/en-US/docs/Web/API/URLSearchParams#Browser_compatibility
'IT > Javascript' 카테고리의 다른 글
[Javascript] 알림창 종류 (alert, confirm, prompt) (0) | 2020.12.28 |
---|---|
[Javascript] 객체 합치는 4가지 방법 (merge) (2) | 2020.12.28 |
[Javascript] 현재 페이지 URL 가져오기 (2) | 2020.12.27 |
[Javascript] 숫자가 정수인지, 실수인지 체크하는 2가지 방법 (4) | 2020.12.26 |
[Javascript] 빈 객체 체크하는 3가지 방법 (2) | 2020.12.26 |