async-validatorЭто чистая библиотека js, которая может выполнять асинхронную проверку данных.async-validatorоснован на раннемasync-validateизменено, но появилось раньшеasync-validateОн не использовался большим количеством людей, но был модифицирован на его основе.async-validatorЭто привлекло внимание и использование многих людей.В настоящее время количество звезд находится в5.2KЭто очень полезно для проверки формы. всегда любопытноant.designсерединаFormКак происходит проверка формы. Затем я пошел на github, чтобы найти его с учебным отношением, и нашел его.Этот автор тоже отличный.
ant.design formиспользовалrc-formупакованныйFormкомпоненты, при этомrc-formиспользуется вasync-validatorПроверка формы плагином.element-uiОн также используетсяasync-validatorПроверка формы завершена.
import schema from 'async-validator';
let descriptor = {
name: {
type: "string",
required: true,
validator: (rule, value) => value === 'muji',
},
age: {
type: "number",
asyncValidator: (rule, value) => {
return new Promise((resolve, reject) => {
if (value < 18) {
reject("too young"); // reject with error message
} else {
resolve();
}
});
}
},
address: {
validator(rule, value, callback){
return value === 'test';
},
message: 'Value is not equal to "test".',
}
};
let validator = new schema(descriptor);
validator.validate({name: "muji"}, (errors, fields) => {
if(errors) {
// validation failed, errors is an array of all errors
// fields is an object keyed by field name with an array of
// errors per field
return handleErrors(errors, fields);
}
// validation passed
});
// PROMISE USAGE
validator.validate({ name: "muji", age: 16 }).then(() => {
// validation passed or without error message
}).catch(({ errors, fields }) => {
return handleErrors(errors, fields);
})
- Необходимый
required
Указывает, является ли поле обязательным
- пространство
whitespace
Указывает, разрешено ли несколько (более одного) последовательных пробелов перед входной строкой
-
Типы
typeУказывает тип значения, которое может принимать это поле.
-
integer-- Формирование -
float-- плавать -
array-- множество -
regexp-- регулярное выражение -
object-- объект -
method-- функция функция -
email-- Почта -
number-- количество -
date-- дата новая дата() -
url-- URL-адрес -
hex-- шестнадцатеричное число
-
-
интервал
rangeУказывает длину значения, принимаемого полем, минимальный и максимальный допустимый диапазон значений.
-
length-- Фиксированная длина -
min-- минимум -
max-- Макс -
range-- [мин Макс]
-
-
перечислить
enum
Перечисление допускает значения для этого поля, совпадающие хотя бы с одним из них
- Обычный
pattern
Соответствует ли полученное значение поля требованиям путем сопоставления с регулярным выражением