Skip to main content

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.