我有以下字符串:
var str = '\x27';
我无法控制它,所以我不能把它写成' \\ x27'例如。每当我打印它,我得到:
'
因为27是撇号。当我打电话给.length
时,它给了我1.这当然是正确的,但我怎么能把它当成一个没有转义的字符串并按字面打印
\x27
并给我一个4的长度?
答案 0 :(得分:1)
我不确定你是否应该做你想做的事,但这就是它的工作原理:
var s = '\x27';
var sEncoded = '\\x' + s.charCodeAt(0).toString(16);
s
是一个包含一个字符的字符串,即撇号。作为十六进制数的字符代码是27.
答案 1 :(得分:0)
在作业var str = '\x27';
之后,您无法分辨str
的内容来自哪里。无法确定是否已分配字符串文字,或字符串文字是否包含转义序列。你所拥有的只是一个包含单个撇号字符的字符串(Unicode代码点U + 0027)。最初的任务可能是
var str = '\x27'; // or
var str = "'"; // or
var str = String.fromCodePoint(3 * 13);
根本没办法说出来。
那就是说,你的问题看起来像XY problem。你为什么要首先打印\x27
?