출처 : http://blog.javarouka.me/2012/02/url.html

2015/02/02 - [프로그램 자료/ASP.NET] - asp.net 에서 URL Query 가져오고, 값 변경 하기




/*

  http://blog.javarouka.me/2012/02/url.html

  JavaScript 에서 URL Query 가져오고, 변경 하기

*/

var QueryObject = function () {

 

    var o = {};

 

    var q = location.search.substring(1);

    if (q) {

 

        // 실제 그룹화 정규식.

        var vg = /([^&=]+)=?([^&]*)/g;

 

        // 인코딩된 공백문자열을 다시 공백으로

        var sp = /\+/g;

 

        // 정규식을 사용하여 값을 추출

        var decode = function (s) {

            if (!s) {

                return '';

            }

            return decodeURIComponent(s.replace(sp, " "));

        };

 

        // 한번씩 exec 실행하여 값을 받아온다.

        var tmp;

        while (tmp = vg.exec(q)) {

            (function () {

                var k = decode(tmp[1]);

                var v = decode(tmp[2]);

                var c;

                if (k) {

                    o[k] = v;

                    // getXXX 형식의 자바빈 타입으로 사용하고 싶다면

                    // 라인을 지우고, 아래와 같이 하면 됩니다.

                    //c = k.charAt(0).toUpperCase() + k.slice(1);

                    //o["get" + c] = function() { return v; }

                    //o["set" + c] = function(val) { v = val; }

                }

            })();

        }

    }

    return o;

};

function QueryObjectToParam(obj) {

 

    var param = "";

    for (var key in obj) {

        if (obj[key] != "")

            param += "&" + key + "=" + encodeURIComponent(obj[key]);

 

    }

    if (param.length > 0)

        param = param.substring(1, param.length);

 

    return param;

 

}

function UrlStr() {

 

    return location.protocol + "//" + location.host + location.pathname;

 

}

function UrlAddQueryObjParam(obj) {

 

    var param = "";

    for (var key in obj) {

        if (obj[key] != "")

            param += "&" + key + "=" + encodeURIComponent(obj[key]);

 

    }

    if (param.length > 0)

        param = param.substring(1, param.length);

 

    return UrlStr() + "?" + param;

 

}

 

Posted by motolies
,