Невидимый символ приводит к непредвиденной ошибке EOF - PullRequest
0 голосов
/ 30 мая 2019

При попытке справиться со строкой я сталкиваюсь

Ошибка: ошибка синтаксиса: неожиданный EOF

У меня нет контроля над тем, как генерируется строка. Мне удалось выделить проблемный символ (ы) с помощью дихотомии с substring(), однако он не печатается ни по console.log(), ни по JSON.parse(): я получаю

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

еще

> c.length;
1

Все, что я знаю, это то, что за ним следует \n.

Как я могу идентифицировать это и избавиться от этого?

Обновление

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

Это даже персонаж ??

1 Ответ

1 голос
/ 30 мая 2019

Предполагая, что это единственный проблемный символ, и поскольку его процентное кодирование идентифицировано, решение состоит в том, чтобы заменить декодированную строку процентного кодирования:

> 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("")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...