Saltar al contenido

Cree preg_match para la validación de contraseña permitiendo ([email protected]PS

Solución:

Creo que esto debería verse así:

if(!preg_match('/^(?=.*d)(?=.*[A-Za-z])[[email protected]#$%]{8,12}$/', $password)) {
    echo 'the password does not meet the requirements!';
}

Entre inicio -> ^

Y final -> $

de la cadena tiene que haber al menos un número -> (?=.*d)

y al menos una letra -> (?=.*[A-Za-z])

y tiene que ser un número, una letra o uno de los siguientes: [email protected]# $% -> [[email protected]#$%]

y tiene que haber 8-12 caracteres -> {8,12}

Como el usuario 557846 comentó su pregunta, también le sugiero que permita más caracteres, por lo general (si uso un máximo) tomo al menos 50 🙂

por cierto, es posible que desee echar un vistazo a este tutorial de expresiones regulares

preg_match('/^(?=.*d)(?=.*[@#-_$%^&+=§!?])(?=.*[a-z])(?=.*[A-Z])[[email protected]#-_$%^&+=§!?]{8,20}$/',$password)
  • al menos un carácter en minúscula
  • al menos un carácter en mayúsculas
  • al menos un dígito
  • al menos un signo especial de @ # -_ $% ^ & + = § !?

Me gustó la respuesta de r3bel, así que jugué con ella y terminé con lo siguiente como función de verificación de contraseña:

function password_strength_check($password, $min_len = 8, $max_len = 70, $req_digit = 1, $req_lower = 1, $req_upper = 1, $req_symbol = 1) {
    // Build regex string depending on requirements for the password
    $regex = '/^';
    if ($req_digit == 1) { $regex .= '(?=.*d)'; }              // Match at least 1 digit
    if ($req_lower == 1) { $regex .= '(?=.*[a-z])'; }           // Match at least 1 lowercase letter
    if ($req_upper == 1) { $regex .= '(?=.*[A-Z])'; }           // Match at least 1 uppercase letter
    if ($req_symbol == 1) { $regex .= '(?=.*[^a-zA-Zd])'; }    // Match at least 1 character that is none of the above
    $regex .= '.{' . $min_len . ',' . $max_len . '}$/';

    if(preg_match($regex, $password)) {
        return TRUE;
    } else {
        return FALSE;
    }
}

Las longitudes máximas / mínimas son predeterminadas o ajustables, cada requisito está activado de forma predeterminada, pero se puede desactivar, y quería admitir cualquier símbolo, por lo que el último requisito es “cualquier cosa que no sea uno de los tipos anteriores”, en lugar de fijo conjunto de símbolos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *