gmgomess / jQuery-CPF-CNPJ-Validator-plugin

Um plugin jQuery para validar CPF e CNPJ
40 stars 37 forks source link

Não valida o CNPJ #12

Closed souzadavi closed 5 years ago

souzadavi commented 5 years ago

Olá, primeiramente parabéns pelo plugin muito útil! Porém ao tentar utilizar o parâmetro validate: cnpj, o cnpj não é validado de jeito nenhum, já verifique meu código inteiro do html e realmente existe algum problema no metodo: validate_cnpj

O que fiz para corrigir foi alterar o método todo para fazer a validação do CNPJ corretamente. Ficando assim:

function validate_cnpj(cnpj, msk) { cnpj = cnpj.replace(/[^\d]+/g,'');

if(cnpj == '') return false;

if (cnpj.length != 14)
    return false;

// Elimina CNPJs invalidos conhecidos
if (cnpj == "00000000000000" || 
    cnpj == "11111111111111" || 
    cnpj == "22222222222222" || 
    cnpj == "33333333333333" || 
    cnpj == "44444444444444" || 
    cnpj == "55555555555555" || 
    cnpj == "66666666666666" || 
    cnpj == "77777777777777" || 
    cnpj == "88888888888888" || 
    cnpj == "99999999999999")
    return false;

// Valida DVs
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;
}

método de validação do cnpj peguei no endereço: https://www.geradorcnpj.com/javascript-validar-cnpj.htm

gmgomess commented 5 years ago

Obrigado pelo feedback e pela contribuição @souzadavi !

Ajustes realizados :)