如何在javascript中忽略转义字符?

时间:2015-12-11 12:19:17

标签: javascript string unicode

我有以下字符串:

var str = '\x27';

我无法控制它,所以我不能把它写成' \\ x27'例如。每当我打印它,我得到:

'

因为27是撇号。当我打电话给.length时,它给了我1.这当然是正确的,但我怎么能把它当成一个没有转义的字符串并按字面打印

\x27

并给我一个4的长度?

2 个答案:

答案 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