Ir para conteúdo

POWERED BY:

Arquivado

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

Br_Legionario

Validação CNPJ aceitando formato 00.000.000/0000-00

Recommended Posts

Ola amigos!

 

Estou validando um campo de CNPJ em meu formulario, está funcionando, porém, aceita o formato 00.000.000/0000-00 e da como valida. Quero fazer com que não aceite esse formato. Deve ser simples porem ainda ando no inicio do desenvolvimento. Colocarei o codigo de validação para melhor me auxiliar. Aguardo auxilio de todos. Grato!

 

function validaCNPJ() {
                 CNPJ = document.validacao.CNPJID.value;
	             erro = new String;
                 if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! ";
                 if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
                 if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! ";				 
                 }

                 //substituir os caracteres que não são números

               if(document.layers && parseInt(navigator.appVersion) == 4){
                       x = CNPJ.substring(0,2);
                       x += CNPJ. substring (3,6);
                       x += CNPJ. substring (7,10);
                       x += CNPJ. substring (11,15);
                       x += CNPJ. substring (16,18);
                       CNPJ = x; 

               } else {

                       CNPJ = CNPJ. replace (".","");
                       CNPJ = CNPJ. replace (".","");
                       CNPJ = CNPJ. replace ("-","");
                       CNPJ = CNPJ. replace ("/","");

               }

               var nonNumbers = /\D/;
               if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! "; 
               var a = [];
               var b = new Number;
               var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
               for (i=0; i<12; i++){
                       a[i] = CNPJ.charAt(i);
                       b += a[i] * c[i+1];

 }

               if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               b = 0;
               for (y=0; y<13; y++) {
                       b += (a[y] * c[y]); 
               }
               if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
               if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
                       erro +="Digito verificador com problema!";
              }
               if (erro.length > 0){
                       alert(erro);
                       return false;
               } else {
                       alert("CNPJ valido!");
               }
               return true;
       }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido:

 

Artigos, Tutoriais e Matérias (PHP) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo tente esse código:

 

function Valida_cnpj( $cnpj )  
{ 
$cnpj = preg_replace( "@[./-]@", "", $cnpj ); 
if( strlen( $cnpj ) <> 14 or !is_numeric( $cnpj ) ) 
{ 
return false; 
} 
$k = 6; 
$soma1 = ""; 
$soma2 = ""; 
for( $i = 0; $i < 13; $i++ ) 
{ 
$k = $k == 1 ? 9 : $k; 
$soma2 += ( $cnpj{$i} * $k ); 
$k--; 
if($i < 12) 
{ 
if($k == 1) 
{ 
$k = 9; 
$soma1 += ( $cnpj{$i} * $k ); 
$k = 1; 
} 
else 
{ 
$soma1 += ( $cnpj{$i} * $k ); 
} 
} 
} 

$digito1 = $soma1 % 11 < 2 ? 0 : 11 - $soma1 % 11; 
$digito2 = $soma2 % 11 < 2 ? 0 : 11 - $soma2 % 11; 

return ( $cnpj{12} == $digito1 and $cnpj{13} == $digito2 ); 
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

e vai validar pra 11.111.111/1111-11, 22.222..... e assim por diante

 

Faça um teste pra ver se as strings não são iguais a nenhuma destas que rola tranquilo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo tente esse código:

 

function Valida_cnpj( $cnpj )  
{ 
$cnpj = preg_replace( "@[./-]@", "", $cnpj ); 
if( strlen( $cnpj ) <> 14 or !is_numeric( $cnpj ) ) 
{ 
return false; 
} 
$k = 6; 
$soma1 = ""; 
$soma2 = ""; 
for( $i = 0; $i < 13; $i++ ) 
{ 
$k = $k == 1 ? 9 : $k; 
$soma2 += ( $cnpj{$i} * $k ); 
$k--; 
if($i < 12) 
{ 
if($k == 1) 
{ 
$k = 9; 
$soma1 += ( $cnpj{$i} * $k ); 
$k = 1; 
} 
else 
{ 
$soma1 += ( $cnpj{$i} * $k ); 
} 
} 
} 

$digito1 = $soma1 % 11 < 2 ? 0 : 11 - $soma1 % 11; 
$digito2 = $soma2 % 11 < 2 ? 0 : 11 - $soma2 % 11; 

return ( $cnpj{12} == $digito1 and $cnpj{13} == $digito2 ); 
} 

Amigo como posso chamar essa função no meu campo input do meu formulario? Pois no meu atual chamo através da ID CNPJID trecho codigo abaixo.

 

Meu form

<form action='cadastra1.php' method='post' enctype="multipart/form-data" onSubmit="return validaCNPJ();" name="validacao">

 

Meu input

<input name='CNPJID' type='text' class="Formulario" id="CNPJID" size=20 maxlength="18">

Amigo não leva a mal pois sou iniciante no desenvolvimento e tenho q arrumar algumas coisas no formulario do site onde trabalho. Grato!

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.