Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

michelmfreitas

validando CNPJ

Recommended Posts

Olá pessoal, já procurei nos infinitos sites da net e não achei uma solução pro meu problema.

 

Estou validando um CNPJ e a validação sempre dá que o número é incorreto.

 

Vejam minhas funções:

function check_CNPJ(cnpj){
   var novoCNPJ = cnpj.replace(/[\/\.-]/g, "");
   return novoCNPJ;
}

function validaCNPJ(cnpj){
     cnpj = check_CNPJ(cnpj);

     var i = 0;
     var l = 0;
     var strNum = "";
     var strMul = "6543298765432";
     var character = "";
     var iValido = 1;
     var iSoma = 0;
     var strNum_base = "";
     var iLenNum_base = 0;
     var iLenMul = 0;

     l = cnpj.length;
     for (i = 0; i < l; i++) {
           caracter = cnpj.substring(i,i+1)
           if ((caracter >= '0') && (caracter <= '9')){
               strNum = strNum + caracter;
           }
     }

     if(strNum.length != 15){
           alert ("CNPJ deve conter 15 caracteres.");
           return false;
     }

     strNum_base = strNum.substring(0,12);
     iLenNum_base = strNum_base.length - 1;
     iLenMul = strMul.length - 1;

     for(i = 0;i < 12; i++){
           iSoma = iSoma + parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) * parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10);
     }

     iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11);

     if(iSoma == 11 || iSoma == 10){
           iSoma = 0;
     }

     strNum_base = strNum_base + iSoma;
     iSoma = 0;
     iLenNum_base = strNum_base.length - 1;

     for(i = 0; i < 13; i++){
           iSoma = iSoma + parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) * parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10)
     }

     iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11);

     if(iSoma == 11 || iSoma == 10){
           iSoma = 0;
     }

     strNum_base = strNum_base + iSoma;
     if(strNum != strNum_base){
           alert ("CNPJ inválido.");
           $("#cl_cnpj").val("");
           return false;
     }
     return true;

}

 

Qualquer CNPJ que eu coloco dá errado. Por quê?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que 'erro' aparece pra você ?

 

if(strNum.length != 15){

cnpjS não possuem 14 números ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.