Автор оригинала: FreeCodeCamp Community Member.
Кэтрин Вассант (ака CODINGK8)
Использование Regexp? ️ конструктор
Эта статья основана на FreeCodeCamp. Основные алгоритмы сценарии ” Подтвердите окончание “.
Эта проблема включает в себя проверку, заканчивается ли строка определенной последовательностью букв или нет.
В этой статье я объясню, как решить этот Вызов с использованием Regexp.
Интересным аспектом этого решения является использование конструктора Regexp для создания конкретного Regexp, вам необходимо проверить строки, переданные в качестве аргументов.
Алгоритм Задача
Предоставил тестовые случаи
1. Первая идея, которая вообще не работает
Если, как я, вы любите Regex, ваша первая попытка может попытаться решить проблему с код ниже и это не будет работать Отказ
Причина в том, что этот синтаксис, функция теста () будет искать конкретную «целевую» строку, а не «цель» в качестве переменной, передаваемой в качестве аргумента.
Если мы вернемся к нашим тестам, те, которые должны вернуть «ложь», пройти, но ни один из тех, кто должен вернуть «True» Pass, который вполне предсказуемый.
2. Решите проблему, создавая конкретное регулярное выражение, вам нужно с конструктором Regexp
Чтобы использовать Regexp, который собирается «понять», что «целевой» аргумент является переменной, а не строкой «целью», вы должны Создайте Taylor-Make Regexp с помощью конструктора Regexp Отказ
И, прежде чем мы будем двигаться вперед, давайте вернемся на минуту и посмотрим на то, что мы хотим проверить: «Целевой» аргумент должен быть окончательным аргументом «Str». Это значит Наше Regexp должно закончиться символом «$» Отказ
Теперь мы можем решить эту проблему на три шага
Шаг 1 – Создайте переменную Добавление «$» в конце «Целевого» аргумента, используя метод CONCAT () в этом случае.
Шаг 2 – Используйте конструктор Regexp и «новый» оператор для создания правильного REGEXP с вышеуказанной переменной.
Шаг 3 – вернуть результат функции теста ().
И это проходит все тесты дела красиво?
Это может быть восстановлено в двух строках, как это
Примечание Поскольку ни один из тестовых случаев не подразумевает тестирование капитализации букв, нет необходимости использовать флаг «I».
Полезные ссылки
String.Prototype.Concat () в MDN
Regexp.prototye.test () в MDN
Regexp Конструктор в MDN
Регулярные выражения в FreeCodeCamp.
Другие решения этой проблемы
Задача “ Получить подсказку “ Предлагает решение с использованием Метод ломтика () Отказ
Вы можете найти два других способа решения этой проблемы, один с Substr () Метод а другой с Эндонсвит () Метод, объясненный Соня Моретс в Эта статья Отказ
Это Ad-Hoc Regexp решение может Также поможет вам решить промежуточные алгоритмы промежуточного алгоритма FreeCodecamp “ Поиск и заменить ” Challenge Отказ
Спасибо за чтение! ✨.
Если вам понравилось эту статью, Пожалуйста, «рук-хлопок» столько раз, сколько вам нравится и поделиться этим Чтобы помочь другим людям находить это. Это может сделать их день.
Если у вас есть Реакция/Вопрос/Предложение , обязательно оставьте Комментарий ниже Отказ Я буду рад читать от вас!
Вы также можете связаться и/или следовать я в твиттере Отказ