Pular para o conteúdo principal

Validators

ArchbaseValidators reúne validadores prontos para uso direto em TextFormField ou nos forms declarativos. Todas as mensagens são localizadas via i18n.

Lista completa

ValidatorO que verifica
required(value)Não é vazio/null
email(value)Formato de email
cpf(value)CPF (com dígitos verificadores)
cnpj(value)CNPJ (com dígitos verificadores)
cpfOrCnpj(value)Aceita um dos dois
phoneBr(value)Telefone BR (com ou sem DDD)
cnh(value)CNH
plateBr(value)Placa BR (Mercosul ou antiga)
strongPassword(value)8+ chars, maiúscula, minúscula, número, símbolo
confirm(other)(value)Igual a outro valor
notEqual(other)(value)Diferente de outro valor
url(value)URL válida
creditCard(value)Luhn check
minLength(n)(value)Mínimo de N caracteres
maxLength(n)(value)Máximo de N caracteres
ageMin(years)(value)Idade mínima (de uma data)
pattern(regex)(value)Casa com regex
numericBetween(min, max)(value)Numérico dentro do range
compose([v1, v2, ...])Combina múltiplos validators

Uso

TextFormField(
validator: ArchbaseValidators.cpf,
);

TextFormField(
validator: ArchbaseValidators.compose([
ArchbaseValidators.required,
ArchbaseValidators.email,
]),
);

// Curried — recebe parâmetros e devolve um validator
TextFormField(
validator: ArchbaseValidators.minLength(8),
);

TextFormField(
validator: ArchbaseValidators.confirm(_passwordController.text),
);

Mensagem custom

Todos aceitam parâmetro message: que sobrescreve a tradução do bundle ativo:

TextFormField(
validator: (v) => ArchbaseValidators.cpf(
v,
message: 'O CPF do contratante é inválido',
),
);

Formatters & máscaras

Para input com máscara, use o ArchbaseMaskFormatter:

TextField(
inputFormatters: [ArchbaseMaskFormatter.cpf],
validator: ArchbaseValidators.cpf,
)

Máscaras prontas: phoneBr, cpf, cnpj, cep, dateBr, cnh, creditCard, plateBr.