Como Criar Validadores de CPF e CNPJ: Guia Prático para Qualquer Projeto
Como Criar Validadores de CPF e CNPJ em Qualquer Projeto
A validação de CPF e CNPJ é uma etapa fundamental em sistemas que envolvem dados pessoais ou empresariais no Brasil. Garantir que essas informações estejam corretas evita fraudes, melhora a integridade dos dados e proporciona uma melhor experiência para o usuário.
Estrutura de CPF e CNPJ
- CPF (Cadastro de Pessoa Física): 11 dígitos no formato XXX.XXX.XXX-XX, sendo os dois últimos os dígitos verificadores.
- CNPJ (Cadastro Nacional de Pessoa Jurídica): 14 dígitos no formato XX.XXX.XXX/XXXX-XX.
Ambos os documentos utilizam um algoritmo baseado em multiplicações e divisões para calcular os dígitos verificadores, que são fundamentais para validar sua autenticidade.
Como funciona a validação?
A ideia principal é:
- Ignorar formatação (. , / - ).
- Verificar se todos os dígitos são iguais (caso sim, é inválido).
- Calcular os dígitos verificadores.
- Comparar os resultados com os dois últimos dígitos do número original.
Exemplo de Validador em JavaScript
javascript
CopiarEditar
function validarCPF(cpf) {
cpf = cpf.replace(/[^\d]+/g, '');
if (cpf.length !== 11 || /^(\d)\1+$/.test(cpf)) return false;
for (let t = 9; t < 11; t++) {
let sum = 0;
for (let i = 0; i < t; i++) {
sum += parseInt(cpf[i]) * (t + 1 - i);
}
let digito = (sum * 10) % 11;
if (digito === 10) digito = 0;
if (digito !== parseInt(cpf[t])) return false;
}
return true;
}
function validarCNPJ(cnpj) {
cnpj = cnpj.replace(/[^\d]+/g, '');
if (cnpj.length !== 14 || /^(\d)\1+$/.test(cnpj)) return false;
const validarDigito = (base, peso) => {
let soma = 0;
for (let i = 0; i < base.length; i++) {
soma += parseInt(base[i]) * peso[i];
}
let resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
};
const peso1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
const peso2 = [6, ...peso1];
const dig1 = validarDigito(cnpj.slice(0, 12), peso1);
const dig2 = validarDigito(cnpj.slice(0, 12) + dig1, peso2);
return cnpj.endsWith(`${dig1}${dig2}`);
}
Boas Práticas
- Sempre remova os caracteres não numéricos antes de validar.
- Use bibliotecas como cpf-cnpj-validador em projetos maiores para evitar retrabalho.
Conclusão
Criar validadores de CPF e CNPJ é uma habilidade essencial para qualquer desenvolvedor que atua com sistemas no Brasil. Mesmo que existam bibliotecas prontas, entender a lógica por trás desses algoritmos ajuda na depuração, otimização e adaptação para diferentes contextos — seja web, mobile ou backend.