Eu usei o seguinte padrão ((\\d)*([a-z])*([A-Z])*([@#$%])*){6,20} e funcionou, pelo menos para os testes que eu fiz. Ele aceita um número 0 ou mais vezes, uma letra 0 ou mais vezes… com tamanho entre 6 e 20.
M
Marquinmpfs
O meu ainda dá erro… segue o xhtml, poderia verificar por favor?
o seu está com um fecha parenteses a mais, o último caractere
M
Marquinmpfs
terei e mesmo assim não passa, só da senha inválida.
V
Vinicius91carvalho
(([a-z])([A-Z])([@#$%])(\d)){8,20})
Eu inverti os dígitos para serem verificados após os caracteres especiais. A RegExp é lida da esquerda para direita, atendendo a cada grupo que foi especificado.
M
Mathob
Essa expressão verifica se tem entre 8~20 caracteres que podem ser a-z, A-Z, especiais ou numéricos. Não importa a ordem em que aparecem e sim a quantidade.