不可见字符导致意外的 EOF 错误

Invisible character leads to Unexpected EOF error

在尝试处理我面对的字符串时

Error: SyntaxError: Unexpected EOF

我无法控制字符串的生成方式。我设法通过 substring() 的二分法隔离了有问题的字符,但是 console.log()JSON.parse() 都没有打印它:我得到

> console.log(c);
""
> JSON.parse(c);
""

> c.length;
1

我只知道后面跟着一个\n

我如何识别它并摆脱它?

更新

> console.log(encodeURIComponent(c));
%E2%80%A8

Is this even a character ??

假设这是唯一有问题的字符,并且由于它的 percent-encoding 已被识别,解决方案是替换解码的 percent-encoding 字符串:

> c.length;
1
> let badchar = decodeURI("%E2%80%A8");
> let regex = new RegExp(badchar, "g");
> newc = c.replace(regex, "");
> newc.length;
0

或者如果由于某种原因 RegExp 不可用:

> newc = c.split(badchar).join("")