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

Limitar a captura a 10 caracteres

Olá, boa noite

O enunciado diz que o limite é de 10 caracteres, como poderíamos validar se existe no máximo 10 caracteres no 'target', levando em consideração que o primeiro caractere não é um número?

1 resposta
solução!

Na verdade, André, vamos ver as condições direito:

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

 

(2) implica que o caractere é uma letra, então poderíamos utilizar o conjunto [a-zA-Z], porém (3) implica que o primeiro caractere só pode ser uma letra minúscula, pois somente a partir do segundo é permitido utilizar "maiúsculas, minúsculas e números", indicando que o primeiro caractere tem o seguinte conjunto: [a-z].

Ok, a partir daí podemos usar maiúsculas, minúsculas e números, então temos o seguinte conjunto: [a-zA-Z0-9]. Porém, podemos ter somente mais 9 caracteres, então precisamos incluir um modificador de contagem de 0 a 9 (entre zero e nove caracteres): [a-zA-Z0-9]{0,9}.

E por que de zero a nove? Porque não definiram uma limitação mínima para o nome de usuário, então o mínimo é um, que é o primeiro caractere que só pode ser uma letra minúscula. A partir daí, podemos ter no máximo mais nove caracteres.

Então a regex final fica assim:

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