Проверка Yup с использованием регулярных выражений с использованием совпадений - PullRequest
0 голосов
/ 28 января 2019

Итак, у меня есть проверка ниже с использованием Yup :

const myValidtion = yup
.string()
.trim()
.matches(/[abcdefghijklmnopqrstuvwxyz]+/ , 'Is not in correct format')
.required();

Итак, при этом это пройдет: hello world как и ожидалось.Но что меня смущает, так это то, что это также пройдет: hello WORLD или это также пройдет: hello ,&$#$ world

С другой стороны, если мы введем только недопустимые символы, такие как *%$&#$($#, это не пройдет и покажет мнеОшибка.Так что, как я вижу, это дает мне ошибку только в том случае, если ALL запись недействительна.

Я ищу, как использовать метод совпадений Yup, чтобы НЕ передавать, если пользователь вводит дляпример: hello ,*&) world

Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 28 января 2019

Ваше регулярное выражение должно покрывать всю строку, используя ^ и $ для обозначения начала и конца строки:

/^[abcdefghijklmnopqrstuvwxyz]+$/

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

Вы можете сократить регулярное выражение, используя диапазон символов, подобный этому:

/^[a-z]+$/

Выможете использовать этот онлайн-инструмент для создания и проверки своего регулярного выражения.

...