Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estava lendo hoje sobre expressões regulares e estou com duvida sobre como definir o numero maximo de caracteres na expressão.
Li sobre os assunto testei algumas e cheguei ao que eu quero mas não consigo definir o máximo de caracteres
vejam
^[a-zA-Z]{3}([._-]?[a-zA-Z0-9])*$
eu quero uma expressão para definição de user name, começando com pelo menos 3 letras e seuindo no qual pode conter apenas caracteres de A-Z (maiúsculos ou minúsculos) 0-9 e se tiver . (ponto) ou _ (underline) ou - (hífen) deverá ter depois pelo menos um numero ou uma letra.
E o total de tudo tem que dá 20 caracteres e foi aí que não consegui.
Alguém pode me ajudar ?
Desde ja agradeço...
Então, vamos lá...
Começando com 3 letras:
[a-z]{3}
Terminando com uma letra ou um número
[a-z0-9]{1}
Esse número 1 aqui é desnecessário, mas vamos deixar só para facilitar o entendimento da ER.
No meio, deve ter uma sequencia dos caracteres que você citou, devendo ter no mínimo 1 caracteres (o que fará com que o resultado final tenha 5 caracteres no mínimo) e no máximo 16 (20 -- 3 + 16 + 1). Como você não disse qual seria o número mínimo de caracteres, vou presumir que sejam 5 (3 + 1 + 1). Se forem mais, basta "incrementar" o número 1 na sequencia abaixo:
[a-z0-9._-]{1,16}
Obs.: se você usar o modificador /i, não será necessário se preocupar com o case, as letras irão casar tanto maiúsculas quanto minúsculas.
Ex.:
} else {