
Função para validar CNPJ, escrita em Javascript, seguindo as regras definidas pelo ministério da fazenda.
Você não precisa apreender um algorítimo com todas as regras necessárias para validar um simples CNPJ, utilize a função a seguir:
function _cnpj(cnpj) {
cnpj = cnpj.replace(/[^\d]+/g, '');
if (cnpj == '') return false;
if (cnpj.length != 14)
return false;
if (cnpj == "00000000000000" ||
cnpj == "11111111111111" ||
cnpj == "22222222222222" ||
cnpj == "33333333333333" ||
cnpj == "44444444444444" ||
cnpj == "55555555555555" ||
cnpj == "66666666666666" ||
cnpj == "77777777777777" ||
cnpj == "88888888888888" ||
cnpj == "99999999999999")
return false;
tamanho = cnpj.length - 2
numeros = cnpj.substring(0, tamanho);
digitos = cnpj.substring(tamanho);
soma = 0;
pos = tamanho - 7;
for (i = tamanho; i >= 1; i--) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(0)) return false;
tamanho = tamanho + 1;
numeros = cnpj.substring(0, tamanho);
soma = 0;
pos = tamanho - 7;
for (i = tamanho; i >= 1; i--) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(1))
return false;
return true;
} Vamos lá, a sua utilização é bem simples, basta você passar o CNPJ como parâmetro e ela irá retornar true ou false conforme o resultado da validação.
A função já irá desconsiderar a máscara antes de validar CNPJ, retirando os pontos, barra e traço.
Para validar o CNPJ irei criar uma função secundária que irá passar o feedback para o usuário com o resultado da validação.
Javascript
function validarCNPJ(el){
if( !_cnpj(el.value) ){
alert("CNPJinválido!" + el.value);
// apaga o valor
el.value = "";
}
} HTML de exemplo
<input name="campo_de_teste" type="text" onblur="validarCNPJ(this)">
Utilizo o evento “onblur” para acionar a função “validarCNPJ”, esta função irá executar à “_cnpj”, realizando a validação.
Você também pode customizar o código para que tudo seja feito em apenas uma única função.
Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…
A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…
Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…
Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…
No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…
Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…
Ver comentários
Obrigado. Ficou muito bom. Me ajudou de mais.
Oi José, que bacana, fico feliz, se tiver alguma sugestão de melhoria na função fique a vontade! Abraço!
onblur="validarCPF(this)" kkk
obrigado pelo Feedback, corrigido!
Olá! Encontrei um pequeno erro de revisão.
No HTML de exemplo, a chamada de blur está referenciando a função "validarCPF", quando deveria ser "validarCNPJ".