Как проверить точное совпадение с Regex в TypeScript

Regex — это один из тех инструментов, которые вы можете использовать или никогда не использовать, но, тем не менее, сейчас они полезны.

Сначала нам нужно решить, с каким значением мы сопоставляемся. В моем случае я сопоставляю добавленное значение input

Для этого я сделал:

const searchValue: string = event.currentTarget.value;

Я решил использовать event.currentTarget.value вместо event.target.value по следующей причине.

Он всегда относится к элементу, к которому был прикреплен обработчик события, в отличие от Event.target, который идентифицирует элемент, на котором произошло событие и который может быть его потомком.

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

let exactMatch = new RegExp("\\b(" + searchValue + ")\\b","gi");

Это устанавливает граничное правило с обеих сторон переменной searchValue. Эта переменная содержит значение, которое пользователь вводит во входное значение, добавляет глобальный флаг для проверки всех возможных совпадений и флаг i, чтобы сделать поиск без учета регистра

Наконец, я проверил значение ввода, используя

searchValue.match(exactMatch);

Поскольку входное значение является строкой, я проверяю, что searchValue точно соответствует правилу Regex.

Это работает, потому что, если вы попытаетесь просто вернуть регулярное выражение, оно вернет строковую форму правил регулярного выражения вместо фактической. Использование метода match позволяет проверить, соответствует ли строка введенным вами правилам регулярного выражения, и возвращает массив, содержащий все совпадающие результаты.