javascript - 评估 Javascript 中转义的字符串文字

标签 javascript node.js

考虑以下代码片段:

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/

相关文章:

几次成功迭代后,React Native 应用程序无法访问树莓派 3B 上的 Node.js 服务器

javascript - 访问客户端 js 文件中的 handlebars 变量

javascript - 在标题中插入和删除字符/单词

javascript - 带有 MySQL 的 jQuery 和 PHP 中的价格范围 slider

javascript - 使用提供的演示设置 Mongoose 不起作用

node.js - TypeError [ERR_INVALID_OPT_VALUE_ENCODING] 值 "./ab.txt"对于选项 "encoding"无效

javascript - 为 Mongoose 运行多个 Mocha 测试文件被打破

Javascript Array join() 返回空白字符串

javascript - 如何根据选择其他选择选项来更改选择选项

javascript - 如何处理数组内对象的 onChange(React State)?