Validação de RG

16 respostas
D

Olá pessoal…será que alguém sabe de algum site que explica como validar o RG ou tem alguma rotina pra fazer esta validação???
obrigado…

16 Respostas

A

Cara, acho q nao existe algoritimo para validacao de RG

D

Putz… eu fiz isso outro dia aí… pelo menos para os RGs de SP.
Vou procurar e te falo!

R

O problema do RG é que cada estado usa um algoritmo diferente. Vai ter que pesquisar como é feito em cada estado e pedir pro usuário dizer em qual estado ele tirou o RG pra aplicar o algoritmo certo.

Por isso que nunca uso RG, só CPF.

[]'s

R

Se alguém tiver uma de cpf e poder postar seria lega tb…

Rocha

R

CPF vc acha fácil no Google em qualquer linguagem.

Mas só pq tô de bom de humor já adianto um site que tem:
http://www2.fundao.pro.br/articles.asp?cod=23

[]'s

D

No próprio GUJ tem.
É só procurar.

V

Cara, eu não tenho certeza, mas eu acho que é assim

vc pega e multiplica cada número de trás pra frente(um por vez) por 9, depois por 8, depois por 7…

soma tudo, pega o resto da divisão por 11

o número que der deve ser igual ao dígito verificador, se o resultado for 10, o dígito é X

[]´s

D

Algorítmo para validar RG de São Paulo (SSP/SP):

Imagine um número: 12.345.678-9

Para validar, faça assim:

1ro dígito x 9
2o x 8
3o x 7
4o x 6
5o x 5
6o x 4
7o x 3
8o x 2

Soma-se tudo.

Desse total, pega o resto da divisão por 11. O que for o resto, deve ser o dígito.

Se resto = 10, dígito = X.

F

Esse funciona…

public class CPFValidator {

/**
 * Método para verifica se determinado cpf é válido.
 * @param cpf - Uma String contendo o cpf.
 * @return true se o cpf é válido e false se não é válido.
 * @author FONTE: www.guj.com.br
 */
public static boolean validaCpf(String xCPF){   
	try {   

		int d1, d4, xx, nCount, resto, digito1, digito2;   
		String Check;   
		String Separadores = "/-.";   
		d1 = 0; d4 = 0; xx = 1;
		
		for (nCount = 0; nCount < xCPF.length() -2; nCount++){   
			String s_aux = xCPF.substring(nCount, nCount+1);   

			if (Separadores.indexOf(s_aux) == -1) {   
				d1 = d1 + ( 11 - xx ) * Integer.valueOf (s_aux).intValue();   
				d4 = d4 + ( 12 - xx ) * Integer.valueOf (s_aux).intValue();   
				xx++;   
			}
		}
		
		resto = (d1 % 11);
		
		if (resto < 2)   
			digito1 = 0;   
		else   
			digito1 = 11 - resto;   
		   
		
		d4 = d4 + 2 * digito1;   
		resto = (d4 % 11);
		
		if (resto < 2)      
			digito2 = 0;   
		else  
			digito2 = 11 - resto;   

		Check = String.valueOf(digito1) + String.valueOf(digito2);   

		String s_aux2 = xCPF.substring (xCPF.length()-2, xCPF.length());   

		if (s_aux2.compareTo (Check) != 0)  
			return false;   
		
		return true; 
		
	}catch (Exception e){   
		return false;   
	}   
}

}

M

Salve como index.html

<html>
<head>
<title>Gerador de CPF</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
Digite os nove (9) primeiros dígitos de seu CPF ou então digite quaisquer nove primeiros digitos e ele gera um CPF valido a partir desses digitos.
<form name="form">
<input type="text"name="CPF"id="cpf"maxlength="9">
<input type="button"value="Criar CPF"onClick="criar()">
</form>
<script language="javascript">

function criar(){
var cnpj=document.getElementById('cpf').value;
if(cnpj.length!=9){
 alert("Preencha os nove campos!");
return false;
}
if(isNaN(cnpj)){
 alert("Preencha somente com dados numéricos!");
return false;
}
if(cnpj!=!isNaN){
for(i=0;i<=cnpj.length;i++)
total=cnpj.length;
campo01=0;
campo02=0;
n1=cnpj.substring(0,total-8);
n2=cnpj.substring(1,total-7);
n3=cnpj.substring(2,total-6);
n4=cnpj.substring(3,total-5);
n5=cnpj.substring(4,total-4);
n6=cnpj.substring(5,total-3);
n7=cnpj.substring(6,total-2);
n8=cnpj.substring(7,total-1);
n9=cnpj.substring(8,total);
tt1=parseFloat((n1*10)+(n2*9)+(n3*8)+(n4*7)+(n5*6)+(n6*5)+(n7*4)+(n8*3)+(n9*2));
div1=(tt1%11);
if(div1<2){
 campo01+=0;
}
if(div1>=2){
 campo01+=parseFloat(11-div1);
}
tt2=parseFloat((n1*11)+(n2*10)+(n3*9)+(n4*8)+(n5*7)+(n6*6)+(n7*5)+(n8*4)+(n9*3)+(campo01*2));
div2=(tt2%11);
if(div2<2){
 campo02+=0;
}
if(div2>=2){
 campo02+=parseFloat(11-div2);
}
alert(n1+''+n2+''+n3+''+n4+''+n5+''+n6+''+n7+''+n8+''+n9+'-'+campo01+''+campo02);
return;
}
}
</script>
</body>
</html>
E

Tenho netbeans 6.1 coloqueu esse codigo nele e esta dando erro no public class CPFValidator { como resouver esse problema?

M

1 - abra o bloco de notas
2 - cole o código postado
3 - clique em arquivo/salvar como
4 - salve como index.html
5 - abra com qq navegador o arquivo gerado
6 - siga as instrucoes do sistema

F

Cara, tens como postar o erro aqui ?

Senão fica meio difícil de saber o que é…, pois aqui ta funcionando!

A

É bom dar uma olhada nos tópicos antigos do GUJ, pois eu já havia postado o código para validar CPF.

Pessoal, estou anexando códigos para validar CPF, CNPJ e Título Eleitoral, junto com um programinha para testar cada um deles.

Também tenho outras funções matemáticas, se alguém quiser é só aviar que eu posto.

F

avencurt:
É bom dar uma olhada nos tópicos antigos do GUJ, pois eu já havia postado o código para validar CPF.

Pessoal, estou anexando códigos para validar CFP, CNPJ e Título Eleitoral, junto com um programinha para testar cada um deles.

Também tenho outras funções matemáticas, se alguém quiser é só aviar que eu posto.

Que funções vc tem?

A

Funções básica que sempre caem em cursos técnicos e nas primeiras cadeiras da facul, tipo IMC, números perfeitos, números primos, Bhaskara…

Criado 13 de setembro de 2004
Ultima resposta 16 de out. de 2008
Respostas 16
Participantes 10