Javascript 将 32 以下的字符替换为 x(charcode)

Javascript replace characters with charcodes under 32 with x(charcode)

本文关键字:charcode 替换 字符 Javascript      更新时间:2023-09-26

0x20下的字符不会显示,因此我想将它们转义为"''x0D"。

目前,我正在使用:

str = str.replace(/(['x00'x01'x02'x03'x04'x05'x06'x07'x08'x09'x0a'x0b'x0c'x0d'x0e'x0f'x10'x11'x12'x13'x14'x15'x16'x17'x18'x19'x1a'x1b'x1c'x1d'x1e'x1f])/,function(b){
                    var b = b.charCodeAt();
                    return '''x'+(b<16?'0':'')+b.toString(16).toUpperCase();
                });

有没有更好的方法?最初,我在做:

str = escape(str).replace('%('d'd)','''x$1');

..但它转义了值高于 32 的字符。

范围。

/['x00-'x1f]/

另请注意,我删除了括号 - 使用 $& 获取整个模式,而不是$1.