考虑以下代码片段:
var a = '\\555';
var b = '\555';
console.log(a, b); // outputs \555 -5
因此,a
的值有一个转义的反斜杠,b
已转义 55,它是“减号”或“破折号”的 Unicode 代码点的八进制等价物,并且尾随的 5
与 -
连接,得到 -5
。
现在我想要“评估/解码”a
值的最佳方法,使其等于b
的值。任何帮助将不胜感激。
最佳答案
eval
可以做到这一点(假设它是一个有效的字符串并且不包含其他转义符和引号):
var a = '\\555';
console.log(eval('"' + a '"'));
但显式解码函数确实是一个更好的主意:
function decodeOctEscapes(x) {
return x.replace(/\\([0-7]{2})/g, (_, v) => String.fromCharCode(parseInt(v, 8)));
}
关于javascript - 评估 Javascript 中转义的字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030856/