Regex PHP para validação de senha
Eu não estou obtendo o efeito desejado de um script. Eu quero que a senha contenha caracteres A-Z, a-z, 0-9 e especiais.
A-Za-z0-9> = 2caracteres especiais> = 2comprimento da corda> = 8Então eu quero forçar o usuário a usar pelo menos 2 dígitos e pelo menos 2 caracteres especiais. Ok meu script funciona, mas me obriga a usar os dígitos ou caracteres de volta para trás. Eu não quero isso. por exemplo. password testABC55 $ é válido - mas eu não quero isso.
Em vez disso, quero testar o $ ABC5 # 8 para ser válido. Então basicamente os dígitos / char especial podem ser os mesmos ou diff -> mas devem ser divididos na string.
CÓDIGO PHP:
$uppercase = preg_match('#[A-Z]#', $password);
$lowercase = preg_match('#[a-z]#', $password);
$number = preg_match('#[0-9]#', $password);
$special = preg_match('#[\W]{2,}#', $password);
$length = strlen($password) >= 8;
if(!$uppercase || !$lowercase || !$number || !$special || !$length) {
$errorpw = 'Bad Password';