JavaScript로 URL 매개변수 가져오기
11585 단어 webdevjavascript
TL; DR
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
// https://example.com/path/to/page?color=purple&size=M&size=L
urlParams.get('color') // purple
urlParams.getAll('size') // ['M', 'L']
URL 매개변수 구조
쿼리 매개변수는
?
(물음표)가 있는 URL 경로와 구분됩니다.https://example.com/path/to/page?color=purple
첫 번째 매개변수 이후의 각 매개변수는
&
(앰퍼샌드)로 결합됩니다.https://example.com/path/to/page?color=purple&size=M&size=L
이 경우 쿼리 문자열은
color=purple
입니다.URL의 일부가 될 수 없는 문자(예: 공백)가 있고 일부 다른 문자는 URL에서 특별한 의미를 갖습니다(문자
#
). 이러한 유형의 문자는 인코딩해야 합니다(예: 공백은 %20
로 인코딩됨).URL 매개변수 가져오기
window.location.search
를 사용하여 쿼리 문자열을 가져올 수 있습니다.const queryString = window.location.search;
그런 다음
URLSearchParams
을 사용하여 쿼리 문자열의 매개변수를 구문 분석할 수 있습니다.const urlParams = new URLSearchParams(queryString);
이제
URLSearchParams.get()
를 사용하여 지정된 검색 매개변수와 연결된 첫 번째 값을 가져올 수 있습니다.// https://example.com/path/to/page?color=purple&size=M&size=L
urlParams.get('color') // purple
urlParams.get('size') // M
urlParams.get('nothing') // empty string
URL 매개변수의 모든 값 가져오기
이제
URLSearchParams.getAll()
를 사용하여 지정된 검색 매개변수와 관련된 모든 값을 가져올 수 있습니다.// https://example.com/path/to/page?color=purple&size=M&size=L
urlParams.getAll('color') // ['purple']
urlParams.getAll('size') // ['M', 'L']
URL 매개변수가 존재하는지 확인
URLSearchParams.has()
를 사용하여 주어진 매개변수가 존재하는지 확인할 수 있습니다.// https://example.com/path/to/page?color=purple&size=M&size=L
urlParams.has('color') // true
urlParams.has('size') // true
urlParams.has('nothing') // false
URL 매개변수 반복
모든 키를 반복합니다.
const keys = urlParams.keys();
for (const key of keys) {
console.log(key);
}
모든 값을 반복합니다.
const values = urlParams.values();
for (const value of values) {
console.log(value);
}
모든 키/값 쌍을 반복합니다.
const entries = urlParams.entries();
for(const entry of entries) {
console.log(`${entry[0]} = ${entry[1]}`);
}
인터넷 익스플로러의 경우
URLSearchParams
는 IE에서 지원되지 않으므로 URL을 구문 분석하고 쿼리 매개변수를 가져와야 합니다.function getParameterByName(name) {
cont url = window.location.search;
name = name.replace(/[\[\]]/g, '\\$&');
let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');
let results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2]);
}
이제
getParameterByName
를 사용하여 지정된 검색 매개변수와 연결된 첫 번째 값을 가져올 수 있습니다.// https://example.com/path/to/page?color=purple&size=M&size=L
getParameterByName('color') // purple
getParameterByName('size') // M
getParameterByName('nothing') // null
Reference
이 문제에 관하여(JavaScript로 URL 매개변수 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/robert96/get-url-parameters-with-javascript-1ah6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)