Quiero implementar un verificador de contraseñas, por ejemplo, la contraseña debe contener una mayúscula, una minúscula y al menos un carácter especial.
Pero quiero hacerlo por separado, por ejemplo, si el usuario no ingresa una mayúscula, le muestro que la que falta es mayúscula.
Aquí mi implementación pero no funciona:
const handlePasswordChange = (text) => { let count = 0; // One uppercase character if (text.match(/^[AZ]*$/)) { count++; setPasswordChecks((prev) => ({ ...prev, upperCase: { ...prev.upperCase, isValid: true }, })); } else { setPasswordChecks((prev) => ({ ...prev, upperCase: { ...prev.upperCase, isValid: false }, })); } if (text.toUpperCase() !== text) { count++; setPasswordChecks((prev) => ({ ...prev, lowerCase: { ...prev.lowerCase, isValid: true }, })); } else { setPasswordChecks((prev) => ({ ...prev, lowerCase: { ...prev.lowerCase, isValid: false }, })); } var format = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/; if (format.test(text)) { setPasswordChecks((prev) => ({ ...prev, specialCharacter: { ...prev.specialCharacter, isValid: true }, })); } else { setPasswordChecks((prev) => ({ ...prev, specialCharacter: { ...prev.specialCharacter, isValid: false }, })); } // Check Level console.log('count:: ', count); if (count === 0 || count === 1) { setPasswordStrength('low'); } else if (count === 4) { setPasswordStrength('high'); } else { setPasswordStrength('medium'); }};
¿Hay una mejor manera de implementar esto?