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

时间:2016-02-25 10:34:26

标签: 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},但它也没有用。

2 个答案:

答案 0 :(得分:4)

根据standard,八进制转义不会在"严格模式"中处理。标准中没有给出理由,但可能重复使用术语"遗产"与" octal"一起使用试图说服读者,该标准的唯一目的是使用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),并且不可打印。字符串中的其他字符是可打印的(不必转义)。

进一步阅读:

答案 1 :(得分:-1)

\ 033 [31m-> \ x1b [31m

对我有用