javascript - 如何在 ES6 模板字符串中使用颜色?

标签 javascript node.js terminal ansi-escape

在 ES5 及以下版本中,我可以在 JS 字符串中使用 ANSI 颜色,例如

"\033[31m Hello World\033[0m".

使用 ES6 模板字符串时,出现错误:

SyntaxError: Octal literals are not allowed in template strings.

我已经尝试过 \u{31m} 但它也没有用。

最佳答案

根据standard , 八进制转义不在“严格模式”下处理。标准中没有给出基本原理,但重复使用术语“遗留”和“八进制”可能是试图说服读者该标准的唯一目的是用于使用 UTF-8 的 Web 浏览器。

您对 \u{31m} 的试验偏离了目标:大括号围绕着十六进制数字。你的意思可能看起来像这样:

"\u{1b}[31m Hello World\u{1b}[0m"

这与

相同
"\u001b[31m Hello World\u001b[0m"

"\u{1b}""\u001b" 是转义符(参见 ECMA-35 和 ECMA-48),不可打印。字符串中的其他字符是可打印的(并且不必转义)。

进一步阅读:

关于javascript - 如何在 ES6 模板字符串中使用颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624801/

相关文章:

javascript - 让 jQuery 插件相互协作(特别是 Jrumble 和 Masonry)

JavaScript 从数组简单登录

node.js - SockJs - 'info' 路径未找到

terminal - VS Code 集成终端的颜色主题

linux - 如何在/usr/test/only目录下的 'string'内搜索 'any file'

javascript - JQuery 未初始化对象

javascript - setInterval 使用 ajax 和特定的目标函数

node.js - Node 服务器中的 Express-rate-limit 与 NGINX

node.js - 尝试在 aws ubuntu 实例上安装 nvm

正则表达式使用 grep 匹配尽可能少的次数(惰性)