
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.
Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…
O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…
Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…
Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…
Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…
O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…
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".