Javascript - Невозможно преобразовать строку в число - PullRequest
0 голосов
/ 02 мая 2020

Я создаю приложение для парсера строк. Это поток моего приложения

  1. выберите весь текст на веб-сайте из браузера
  2. вставьте его на мой сайт, и он преобразует его во что-то

Проблема в том, что когда я пытался преобразовать строковое число, используя Number(myString) или parseInt(myString), я получил NaN. Но когда я использую фиктивную переменную, такую ​​как let i = "19", она будет правильно преобразовывать ее в число.

Я попытался преобразовать мою строку в формат urlEncoded, и в результате получим: для строки 21‬, закодированный результат - %E2%80%AD21%E2%80%AC

Итак, я прихожу к выводу, что строка, полученная от вставки копии в веб-браузере, не разбирается из-за какого-либо форматирования.

Как это исправить поведение?

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете использовать replace(/[^\x20-\x7E]/g, '') для замены непечатаемых символов ASCII следующим образом:

const sillyString = decodeURIComponent("%E2%80%AD21%E2%80%AC");
console.log(sillyString);
console.log(parseInt(sillyString));
console.log(parseInt(sillyString.replace(/[^\x20-\x7E]/g, '')));

Может, это поможет?

...