Почему. * Внутри функции замены не всегда удаляет символ и следующий текст в узле? - PullRequest
0 голосов
/ 15 марта 2019

В файле тестирования узла / codeceptjs:

   for(let b = 0; b < uniqueMenuItems.length; b++ )
    {
      console.log(uniqueMenuItems[b]);
      uniqueMenuItems[b] = uniqueMenuItems[b].replace("®.*", "");
      console.log(uniqueMenuItems[b]);
    }

это приводит к выводу:

Четыре 20oz.PEPSI-COLA® Напитки

Четыре 20 унции.PEPSI-COLA® Напитки

PEPSI®

PEPSI®

Диета PEPSI®

Диета PEPSI®

MTN DEW®

MTN DEW®

SIERRA MIST®

SIERRA MIST®

Dr Pepper®

Dr Pepper®

AQUAFINA®

AQUAFINA®

Что неверно, следует удалить ® и все после него.

Здесь действует то же регулярное выражение: https://regex101.com/r/oY5nA8/137

Если я изменю регулярное выражение, чтобы просто удалить ®, без. * Вывод также будет работать как ожидалось.

есть ли escape-символ или что-то, чего мне не хватает, чтобы получить. * Работает?

1 Ответ

0 голосов
/ 15 марта 2019

Я понял, что вы просто заменяете "" на // вокруг параметра, передаваемого в replace.

   for(let b = 0; b < uniqueMenuItems.length; b++ )
    {
      console.log(uniqueMenuItems[b]);
      uniqueMenuItems[b] = uniqueMenuItems[b].replace(/®.*/, "");
      console.log(uniqueMenuItems[b]);
    }

Работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...