Eu quero uma expressão regular para verificar isso:
Uma senha contém pelo menos oito caracteres, incluindo pelo menos um número e inclui letras maiúsculas e minúsculas e caracteres especiais, por exemplo #
, ?
,
!``.
Não pode ser sua senha antiga ou conter seu nome de usuário, "senha"
, ou "websitename"
E aqui está a minha expressão de validação que é para oito caracteres incluindo uma letra maiúscula, uma letra minúscula e um número ou caracter especial.
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
Como posso escrevê-la para uma senha deve ter oito caracteres, incluindo uma letra maiúscula, um caractere especial e caracteres alfanuméricos?
Mínimo oito caracteres, pelo menos uma letra e um número:
"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
Mínimo oito caracteres, pelo menos uma letra, um número e um carácter especial:
"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
Mínimo oito caracteres, pelo menos uma letra maiúscula, uma letra minúscula e um número:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
Mínimo oito caracteres, pelo menos uma letra maiúscula, uma letra minúscula, um número e um caracter especial:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
Mínimo oito e máximo 10 caracteres, pelo menos uma letra maiúscula, uma letra minúscula, um número e um caracter especial:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
Você pode usar este regex com múltiplas lookahead afirmações (condições):
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
Esta regex vai fazer cumprir estas regras:
(?=.*?[A-Z])
(?=.*?[a-z])
(?=.*?[0-9])
(?=.*?[#?!@$%^&*-])
.{8,}
(com as âncoras)Apenas uma pequena melhoria para @anubhava's resposta: Como os caracteres especiais estão limitados aos do teclado, use isto para qualquer caracter especial:
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
Esta regex vai fazer cumprir estas regras: