Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Exercício Opcional - Dúvida

Na resposta do exercício opcional de validação de logins, a resposta fornecida é

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

Que deverá obedecer as seguintes premissas:

O limite é de 10 caracteres;
O primeiro caractere não pode ser um número;
A partir do segundo caractere podemos ter letras maiúsculas, minúsculas e números;

Porém, jogando como target as seguintes possibilidades:

1yuri yuriCabral yuriicabral yur1cabral 18ycabral

Essa regex me trás como match, o seguinte:

yuri | yuriCabral | yuriicabra | l | yur1cabral | ycabral

Ao meu ponto de vista, somente os usernames yuricabral e yur1cabral deveriam ter sido exibidos como match, pois representam o username como um todo os quais obedecem as premissas (nenhum começa com numeral; o limite é de 10 caracteres; e a partir do segundo caracter são aceitos números).

Portanto, o correto, não seria a regex

\b[a-zA-Z][a-zA-Z0-9]{0,9}\b

Para indicar que ele deve ser tratado como uma palavra inteira para aí sim retornar?

yuriCabral | yur1cabral

Caso estiver realmente errado, gostaria de sugerir a melhoria para o exercício.

5 respostas

Olá Yuri então vamos lá vou te explicar os problemas que você está tendo.

O usuário pode conter apenas um carácter. Nesse regex na parte final dele você diz que ele pode ter de 0 a 9 caracteres, porém se você quiser resolver esse problema e falar que ele tem que ter no minimo 9 ou qualquer outro tamanho basta vc colocar {9,}.

Alan, desculpa a minha ignorância, mas ainda assim não consegui entender muito bem... O objetivo desse exercício é extrair as possibilidades de usernames que estão no target, ou extrair somente os usernames válidos que estão no target?

Se for somente os usernames válidos, essa regex na parte final considera também os usernames com um caracter, desde que não seja numérico pois a premissa não permite.

Na regex final, além do primeiro caracter que deve ser uma letra maiúscula ou minúscula, devem vir de 0 até 9 caracteres, assim não ultrapassando os 10 de limíte.

A premissa desse exercício se não me engano é validar o username que esta vindo em um request.

É essa mesma.. Da maneira que foi mostrada

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

ele não está validando logins que não deveria? Por exemplo a primeira palavra "1yuri" está trazendo "yuri".

solução!

Yuri você pode usar esse regex ^[a-zA-Z][a-zA-Z0-9]{0,9}$, ele vai obrigar a sempre começar com letras