在ES5及以下版本中,我可以在JS字符串中使用ANSI颜色,例如
"\033[31m Hello World\033[0m"
。
使用ES6模板字符串,我收到错误:
SyntaxError: Octal literals are not allowed in template strings.
我尝试了\u{31m}
,但它也没有用。
答案 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
对我有用