none
Validação de RG em C# RRS feed

  • Pergunta

  • olá....

     

    Alguém sabe de alguma classe em C# q valide RG ...igual a classe q valida CPF..ou não existe...

    o q eu devo fazer pra validar RG?

     

    Alguém pode me ajudar..

     

    Desde ja eu agradeço....

    Muito obrigada...

     

    Att.: Elaine

     

    quarta-feira, 12 de dezembro de 2007 17:21

Respostas

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.

     

    quarta-feira, 12 de dezembro de 2007 17:29
  • Olá Elaine.

     

    Dê uma olhadinha neste post.

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2226151&SiteID=21

     

    Abs,

     

    quarta-feira, 12 de dezembro de 2007 17:35
  • 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

     

     

     

     


     

     

    quarta-feira, 12 de dezembro de 2007 18:53
  • 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!

    segunda-feira, 25 de janeiro de 2010 19:19
  • 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
    quarta-feira, 27 de janeiro de 2010 18:53
  • 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.

    sexta-feira, 16 de março de 2012 16:47
  • Você não esta validando o RG, esta apenas validando a máscara!
    quarta-feira, 26 de julho de 2017 19:50