JavaScript字符串中的转义控制和非ASCII字符(高位)?

时间:2012-06-18 17:27:28

标签: javascript regex

javascript中是否有一种简单的方法可以逃避某些控制字符范围?

具体来说,我只想转义范围“\ x00- \ x1f”和“\ x7f- \ xff”(控制和高位字符)。在计算随后发送到API的哈希之前,我只需要转义那些字符。像encodeURI()和escape()这样的标准函数转义太多了。

基本上,我需要匹配perl uri_escape($text,"\x00-\x1f\x7f-\xff") 的功能。

1 个答案:

答案 0 :(得分:0)

function uri_escape( text, re ) {

    function pad( num ) {
        return num.length < 2 ? "0" + num : num;
    }

    return text.replace( re, function(v){
        return "%"+pad(v.charCodeAt(0).toString(16)).toUpperCase();
    });
}

uri_escape( "\u0015\u0012", /[\x00-\x1f\x7f-\xff]/g );
//"%15%12"