我正在使用API​​来编译代码,并且当出现错误时,包含错误消息的响应将使用JSON转义字符,但是当将其输出回HTML前端时,它只会产生垃圾字符。如何使用Javascript将转义的字符串转换为纯文本字符串,或以HTML正确输出?

这是正确输出的字符串(在Powershell中):

https://i.imgur.com/tv0BZFl.jpg

这是转义的字符串:

\ u001b [01m \ u001b [K:\ u001b [m \ u001b [K in function'\ u001b [01m \ u001b [Kin ...

如果我直接以HTML输出,则字符串如下所示:

[01m [K:[m [K在函数'[01m [Kint main()[m [K':
[01m [K:9:1:[m [K [01; 31m [Kerror:[m [Kexpected'[01m [K; [m [K]
 }
[01; 32m [K ^ [m [K

最佳答案

看起来您可以使用strip-ansi包。这是使用转义字符串的示例:

const stripAnsi = require('strip-ansi');

stripAnsi("\u001b[01m\u001b[K:\u001b[m\u001b[K In function '\u001b[01m\u001b[Kin...")

// result => ": In function 'in..."


如果您不使用node.js,或者由于某种原因无法使用该软件包,则this Stack Overflow answer可以使用正则表达式来代替。

09-10 15:55