Как добавить проверку электронной почты в поле с помощью tcomb-form-native?
Используя библиотеку tcomb-form-native с реагировать на родную, я установил в типе клавиатуры электронный адрес. Как добавить регулярное выражение или валидатор электронной почты в форму? Должен ли я сделать это с помощью функции отправки (и выдать специальную ошибку?) Или есть поле проверки регулярных выражений, которое я могу установить с помощью библиотеки?
Я заметил, что проверка tcomb https://github.com/gcanti/tcomb-validationlibrary имеет поле типа RegExp - но я не вижу примеров того, как его использовать. Представленный пример, кажется, проверяет, является ли поле шаблоном регулярных выражений, что представляет собой запутанный вариант использования, поскольку обычно вы хотите проверить поле на соответствие шаблону регулярных выражений, а не вводить шаблон регулярного выражения в поле.
1 ответ
Вы можете создать свой собственный подтип с проверкой RegExp
const Email = t.refinement(t.String, email => {
const reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/; //or any other regexp
return reg.test(email);
});
const Person = t.struct({
name: t.String,
email: Email,
});