Как я могу использовать цвета в строках шаблона ES6?
В ES5 и ниже я мог использовать цвета ANSI в строках JS, таких как
"\033[31m Hello World\033[0m"
,
С шаблонными строками ES6 я получаю ошибку:
SyntaxError: Octal literals are not allowed in template strings.
я пытался \u{31m}
но это тоже не сработало.
1 ответ
Согласно стандарту восьмеричные экранирования не обрабатываются в "строгом режиме". В стандарте нет обоснования, но, вероятно, повторяющееся использование термина "наследие" в сочетании с "восьмеричным" является попыткой убедить читателя в том, что единственная цель этого стандарта - для веб-браузеров, использующих UTF-8.
Ваше испытание с \u{31m}
было не в порядке: фигурные скобки находятся вокруг шестнадцатеричных цифр. То, что вы, вероятно, имели в виду, выглядело бы так:
"\u{1b}[31m Hello World\u{1b}[0m"
который будет таким же, как
"\u001b[31m Hello World\u001b[0m"
"\u{1b}"
или же "\u001b"
является escape-символом (см. ECMA-35 и ECMA-48) и не предназначен для печати. Другие символы в строке могут быть напечатаны (и не должны быть экранированы).
Дальнейшее чтение: