Skip to content

Integração com Joi ​

Plugue isCPF e isCNPJ do validation-br em regras customizadas do Joi.

O Joi é um validador de esquemas usado em aplicações Node, React, Vue etc. Ele suporta regras customizadas via .custom(), onde uma das funções isX do validation-br pode ser reaproveitada — tanto para CPF quanto para CNPJ, incluindo o formato alfanumérico de CNPJ. A mesma técnica usada abaixo para validateCpf vale, sem alterações, para criar um validateCnpj alfanumérico. Este guia usa a API de funções soltas da versão 1.x; para projetos novos, veja a integração com Joi na versão 2.0.

Como validar CPF e CNPJ alfanumérico com Joi ​

js
import Joi from 'joi';
import { isCPF } from 'validation-br';

const validateCpf = (value, helper) => {
  if (!isCPF(value)) {
    return helper.message('CPF inválido');
  }
  return value;
};

const schema = Joi.object({
  cpf: Joi.string().custom(validateCpf),
});

O mesmo padrão serve para CNPJ:

js
import { isCNPJ } from 'validation-br';

const validateCnpj = (value, helper) => {
  // já valida CNPJ alfanumérico (novo formato, a partir de 2026)
  if (!isCNPJ(value)) {
    return helper.message('CNPJ inválido');
  }
  return value;
};

const schemaWithCnpj = Joi.object({
  cnpj: Joi.string().custom(validateCnpj),
});

Como usar ​

js
schema.validate({ cpf: '01234567890' });
schemaWithCnpj.validate({ cnpj: '01234567000189' });

Saiba mais ​