JavaScript
URL 파라미터 값 가져오기 (?뒤에값을 이용해 =뒤에 값을 출력)
입방정
2022. 6. 11. 14:24
728x90
[JavaScript] URL 파라미터 값 가져오기 (feat. location.search / getParameterByName)
- URL 파라미터 값 가져오기 - URL상에 보이는 파라미터나 location.href를 이용하여 이동할때 보내는 파라미터 값을 스크립트로 가져와서 사용해 보도록하자. 기본적으로 자바스크립트 내장 함수인 l
mine-it-record.tistory.com
http://192.168.0.103:8080/publish/EVRY_1530?evtState=winner
Object.values(this.$route.query) //{evtState: 'winner'}
this.$route.query.evtState //winner
this.$route.query.evtState //[winner]
1. 정규식 표현을 이용한 함수.
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var patId = getParameterByName('category'); // 1060192
2. 모든 파라미터를 객체 형식으로 가져오는 함수
function get_query(){
var url = document.location.href;
var qs = url.substring(url.indexOf('?') + 1).split('&');
for(var i = 0, result = {}; i < qs.length; i++){
qs[i] = qs[i].split('=');
result[qs[i][0]] = decodeURIComponent(qs[i][1]);
}
return result;
}
var result = get_query();
//result
{
category: "1060192",
}
활용
http://192.168.0.103:8080/publish/EVRY_1530?evtState=winner
function getParamName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
const _eventState = getParamName('evtState');
if(_eventState=='winner'){
this.eventBtnUse = true;
this.eventEnd = true;
this.chcheck.completeDay = 30;
for(let i=0;i < this.chcheck.dateDD.length;i++){
this.chcheck.dateDD[i].complete = true;
}
}
728x90