Usuário com melhor resposta
Validação de RG em C#

Pergunta
-
Respostas
-
Olá, da um aolhada nesse link que pode te ajudar, eu ja crii uma validação no rg utilizando esse procedimento.
http://www.codigofonte.com.br/codigo/js-dhtml/validacao/validar-documento-de-identidade-[rg]
Abraço.
-
Olá Elaine.
Dê uma olhadinha neste post.
http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2226151&SiteID=21
Abs,
Todas as Respostas
-
Olá, da um aolhada nesse link que pode te ajudar, eu ja crii uma validação no rg utilizando esse procedimento.
http://www.codigofonte.com.br/codigo/js-dhtml/validacao/validar-documento-de-identidade-[rg]
Abraço.
-
Olá Elaine.
Dê uma olhadinha neste post.
http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2226151&SiteID=21
Abs,
-
Olá...
Eu encontrei um código q valida RG...
Mas tem o seguinte problema....não está em C# !
Veja: http://www.codigofonte.com.br/codigo/js-dhtml/validacao/validar-documento-de-identidade-[rg]
Onde eu encontro uma classe q valida em C# porfavor?
Ou..alguém sabe passar essa classe pra C#...?
Muito Obrigada...pela ajuda..
Att.: Elaine
-
Fiz um método boleano que retorna TRUE quando RG valido, e FALSE quando inválido!
Segue,
public bool validateRg(string rg)
{
//Elimina da string os traços, pontos e virgulas,
rg = rg.Replace("-", "").Replace(".", "").Replace(",", "");//Verifica se o tamanho da string é 9
if (rg.Length == 9)
{
int[] n = new int[8];//obtém cada um dos caracteres do rg
n[0] = Convert.ToInt32(rg.Substring(0, 1));
n[1] = Convert.ToInt32(rg.Substring(1, 1));
n[2] = Convert.ToInt32(rg.Substring(2, 1));
n[3] = Convert.ToInt32(rg.Substring(3, 1));
n[4] = Convert.ToInt32(rg.Substring(4, 1));
n[5] = Convert.ToInt32(rg.Substring(5, 1));
n[6] = Convert.ToInt32(rg.Substring(6, 1));
n[7] = Convert.ToInt32(rg.Substring(7, 1));
n[8] = Convert.ToInt32(rg.Substring(8, 1));//Aplica a regra de validação do RG, multiplicando cada digito por valores pré-determinados
n[0] *= 2;
n[1] *= 3;
n[2] *= 4;
n[3] *= 5;
n[4] *= 6;
n[5] *= 7;
n[6] *= 8;
n[7] *= 9;
n[8] *= 100;//Valida o RG
int somaFinal = n[0] + n[1] + n[2] + n[3] + n[4] + n[5] + n[6] + n[7] + n[8];
if ((somaFinal % 11) == 0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
Espero que ajude! -
Dei uma pesquisada e descobri que RG's também podem conter o caracter X no local do dígito. Segue a correção no código!
public bool validateRg(string rg)
{
//Elimina da string os traços, pontos e virgulas,
rg = rg.Replace("-", "").Replace(".", "").Replace(",", "");
//Verifica se o tamanho da string é 9
if (rg.Length == 9)
{
int[] n = new int[9];
try
{
n[0] = Convert.ToInt32(rg.Substring(0, 1));
n[1] = Convert.ToInt32(rg.Substring(1, 1));
n[2] = Convert.ToInt32(rg.Substring(2, 1));
n[3] = Convert.ToInt32(rg.Substring(3, 1));
n[4] = Convert.ToInt32(rg.Substring(4, 1));
n[5] = Convert.ToInt32(rg.Substring(5, 1));
n[6] = Convert.ToInt32(rg.Substring(6, 1));
n[7] = Convert.ToInt32(rg.Substring(7, 1));
if (rg.Substring(8, 1).Equals("x") || rg.Substring(8, 1).Equals("X"))
{
n[8] = 10;
}
else
{
n[8] = Convert.ToInt32(rg.Substring(8, 1));
}
}
catch (Exception)
{
return false;
}
//obtém cada um dos caracteres do rg
//Aplica a regra de validação do RG, multiplicando cada digito por valores pré-determinados
n[0] *= 2;
n[1] *= 3;
n[2] *= 4;
n[3] *= 5;
n[4] *= 6;
n[5] *= 7;
n[6] *= 8;
n[7] *= 9;
n[8] *= 100;
//Valida o RG
int somaFinal = n[0] + n[1] + n[2] + n[3] + n[4] + n[5] + n[6] + n[7] + n[8];
if ((somaFinal % 11) == 0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
att,
Pablo Bertrão -
Boa tarde pessoal,
Desculpe Pablo mas a sua função deve considerar que o RG pode conter letras e até 14 dígitos, em alguns estados como são paulo o RG pode conter X e W
Já no nordeste como fortaleza o RG já contém 13 números com 1 digito verificador.
A meu ver não tem uma regra única para validação do RG até porque cada estado tem sua própria regra.
-