none
Validacao de caracteres repetidos em uma string RRS feed

  • Pergunta

  • Olá povo...

     

    Tenho que validar um campo que o usuario digita, para nao aceitar caracteres repetidos nessa string digitada...

     

    Algum exmplo de código ae... Estou programando em VB.NET, mas qq linguagem serve eu converto aki...

     

    EH URGENTE... Se alguem tiver o algoritmo ou um modo usando validations do .NET que eu nao sei...

     

    AGRADEÇO DESDE JÁ A AJUDA... VLW...

    quarta-feira, 13 de junho de 2007 12:31

Todas as Respostas

  • Oi, Raphael.

         Criei um exemplo de rotina em C# pra fazer essa verificação. Não é o mais otimizado (talvez usando array de char fosse mais rápido) mas acho que pode ajudá-lo.
         Dá pra transportar essa idéia pra javascript se você quiser rodar client-side.

    Code Snippet

                // "chumbando" o valor mas assuma que vem do seu textbox
                string textoOriginal = "aloha";
                bool encontrouLetraDuplicada = false;

                if (textoOriginal != string.Empty)
                {
                    for (int indiceLetraAtual = 0; indiceLetraAtual < textoOriginal.Length; indiceLetraAtual++)
                    {
                        if (indiceLetraAtual < textoOriginal.Length - 1)
                        {
                            char letraAtual = (char)textoOriginal.Substring(indiceLetraAtual, 1);

                            if (textoOriginal.IndexOf(letraAtual, indiceLetraAtual + 1) > -1)
                            {
                                encontrouLetraDuplicada = true;
                                break;
                            }
                        }
                    }
                }
                if (encontrouLetraDuplicada)
                {
                    // Exibe mensagem pro usuário indicando que encontrou letra duplicada
                }

     

         Boa sorte com seu projeto.

    Abraço.

    quarta-feira, 13 de junho de 2007 13:38
  • tem um jeito mais fácil, usa essa expressão regular:

    (\w)*.*\1

    ela vai retornar a última letra repetida que ela achou, ou seja, vai retornar algo se houver repetição de caracteres e nada caso contrário

    Code Snippet

    System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"(\w)*.*\1");

    bool repete = regex.IsMatch(texto);

     

    a variável repete vai conter o valor indicando se o texto contém uma repetição de caracteres ou não

    sexta-feira, 15 de junho de 2007 11:59