3
respostas

Duvida em criar regex para validar uma senha

Olá a todos, não chequei a criar regex que aceite uma senha com os seguintes critérios:

  • ter tamanho mínimo 6 e no máximo 15 caracteres.
  • Deves ter somente letras e numero e caractere especial(!#@$%&)
  • Deve ter no mínimo uma letra maiúscula e minúscula.
  • Deve ter no mínimo um numero.
  • Deve ter no mínimo caractere especial(!#@$%&)

Já bati cabeça e ainda não consegui.

3 respostas

Tente esse, e pergunte se necessário caso não conheça ou tenha entendido algo:

^(?=.*[A-Z])(?=.*[!#@$%&])(?=.*[0-9])(?=.*[a-z]).{6,15}$

Obrigado Francisco eu testei aqui e funcionou, mais fiquei sim com duvidas na utilização ?=. dentro no inicio das classes

O “.” compõe junto com o “*” em cada uma das classes para aceitar 0 ou mais caracteres antes do caracter que está sendo exigido (minúsculo, maiúsculo, número ou caracter especial).

O “=?” é conhecido como positive lookahead, e é uma forma de adicionar regras não capturáveis em expressões regulares.

No caso dessa expressão, é ela que permite buscar cada exigência por vez sem influenciar nas demais por não ter capturado.