我有一个脚本输出带有大量与颜色有关的ASCII转义序列的代码(例如,\033[91m
在打印到终端时将文本的颜色更改为红色)。我想尝试将其输出为HTML,所以我尝试了这个:
str = str.replace(new RegExp('\033[91m', 'g'),
'<span style="color:#ff0011">')
/*.replace more such codes*/;
但是,我收到以下错误:
SyntaxError:无效的正则表达式:
/[91m/
:未终止的字符类
我该如何解决?
答案 0 :(得分:3)
您可以将[
放在像这样的字符类中:
str = str.replace(new RegExp('\033[[]91m', 'g'),
'<span style="color:#ff0011">');
答案 1 :(得分:2)
将其更改为'\033\\[91m'
。即你必须逃避'['
,以便它不会认为你给它一个在该位置匹配的字符列表。
答案 2 :(得分:0)
var str = 'blahblah\033[91mblahblah';
str = str.replace(new RegExp('[\\033[91m]+', 'g'),
'<span style="color:#ff0011">');
alert(str);