2

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

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

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

4

1 回答 1

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"
于 2012-06-18T17:41:11.137 回答