Validar campo cnpj/inc.estadual

2 respostas
P

Pessoal, sou novo no assunto, tenho um form jsp com vários campos a serem validados, mas estou com dificuldades mesmo é no cnpj, inasc.estadual e email. Alguem pode ajudar, desde já agradeço, eh um trabalho de escola.

2 Respostas

Jair_Rillo_Junior

procura no google e no fórum que com certeza você acha algo pronto. Alias, você encontra também essa validação para JavaScript.

L

Eu tenho está que está funcionando legal.

Formato que usuário deve informar: 99.999.999/9999-99

function validaCNPJ() {
     CNPJ = document.form.PJ_CNPJ.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 +="Dígito verificador com problema!";
	 }
	 if (erro.length > 0){
			 alert(erro);
			 return false;
	 } else {
			 alert("CNPJ valido!");
	 }
	 return true;
}
Criado 8 de outubro de 2004
Ultima resposta 8 de out. de 2004
Respostas 2
Participantes 3