Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação por meio de expressão regular

No exercício a solução apresentada foi:

[a-zA-Z][a-zA-Z0-9]{1,9}

Para um caso como "2luca" a expressão regular iria dar um match resultando como seleção "luca" e deixando o "2" de fora.. Porém para validar eu teria que comparar o tamanho do meu match com a string original para ver de fato que não é valida..

Para a seguinte expressão, o match não ocorre quando iniciado numericamente.

^[A-Za-z][A-Za-z0-9]{1,9}

Como seria a melhor solução?

Obrigado!

1 resposta
solução!

Olá, Luca! Tudo bem? =)

Como estamos falando de um nome de usuário, idealmente estamos verificando a string como um todo, não somente parte dela. Conferir o tamanho dela talvez não seja tão interessante, mas colocar a âncora ^ no inicio com certeza é uma boa ideia. O que ela faz de fato é verificar se a string começa com aquela RegEx, sacou? =)

Você poderia ir mais além ainda. Vamos supor que a RegEx deva começar e terminar daquela forma, ou seja, ela deve conter uma letra podendo ser maiúscula ou minúscula e, em seguida, 9 caracteres entre letras e números...

O que aconteceria se colocássemos algo como Luca2222222? A RegEx iria dar um match em quase tudo, deixando o último 2 de fora... Para isso, podemos usar ainda outra âncora, agora a $, que diz que a string deve terminar ali, ficando assim:

^[A-Za-z][A-Za-z0-9]{1-9}$

Espero ter ajudado, mas qualquer dúvida, não deixe de postar por aqui para podermos ajudar!

Abraço e bons estudos,

Fábio