개발자의 끄적끄적

[javascript] 자바스크립트에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정 [펌] 본문

개발/javascript & jquery

[javascript] 자바스크립트에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정 [펌]

효벨 2020. 2. 16. 01:00
728x90
반응형

[javascript] 자바스크립트에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정 [펌]

 

// 자바스크립트에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정

// 자바스크립트에서 php urlencode 구현 함수

function urlencode(str) {

    str = (str + '').toString();

    return encodeURIComponent(str)

        .replace(/!/g, '%21')

        .replace(/'/g, '%27')

        .replace(/\(/g, '%28')

        .replace(/\)/g, '%29')

        .replace(/\*/g, '%2A')

        .replace(/%20/g, '+');

}

 

// 자바스크립트에서 php urldecode 구현 함수

function urldecode(str) {

    return decodeURIComponent((str + '')

        .replace(/%(?![\da-f]{2})/gi, function() {

            return '%25';

        })

        .replace(/\+/g, '%20'));

}

 

// 자바스크립트에서 php rawurlencode 구현 함수

function rawurlencode(str) {

    str = (str + '').toString();

    return encodeURIComponent(str)

        .replace(/!/g, '%21')

        .replace(/'/g, '%27')

        .replace(/\(/g, '%28')

        .replace(/\)/g, '%29')

        .replace(/\*/g, '%2A');

}

 

// 자바스크립트에서 php rawurldecode 구현 함수

function rawurldecode(str) {

    return decodeURIComponent((str + '')

        .replace(/%(?![\da-f]{2})/gi, function() {

            return '%25';

        }));

}

반응형
Comments