[javascript] querystring의 특정 pair의 값을 수정하여 또 다른 querystring 으로 만들기

By | 3월 17, 2021
// 함수 정의
/**
 * 파라미터로 받은 querystring의 특정 파라미터 값을 변경한 querystring을 리턴한다.
 *
 *  - querystring은 주소부분을 제외한 ? 이후의 부분이라 가정한다.
 */
function modifyQueryString(src, modObj){

    // querystring을 object 화
    var obj = JSON.parse('{"' + decodeURI(src).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}');

    for(key1 in obj){
        for(key2 in modObj){
            if(key1 != key2){
                continue;
            }
            obj[key1] = modObj[key1]; // 값 교체
        }
    }

    // object를 querystring 화
    var newQS = new URLSearchParams(obj).toString();

    return newQS;
}

// 용례 (파라미터들 중 paramA=Y 였었는데 N 으로 변경한 URL)
var locArr = location.toString().split('?');
location.href = locArr[0] + '?' + modifyQueryString(locArr[1], { paramA:'N' });


Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments