250x250
Notice
Recent Posts
Recent Comments
«   2025/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

진스

URL 파라미터 값 가져오기 (?뒤에값을 이용해 =뒤에 값을 출력) 본문

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
Comments