30 lines
1010 B
JavaScript
30 lines
1010 B
JavaScript
// import { simpleNotification } from '../comps/notify.js';
|
|
import { simpleNotification } from '../z_comps/notify.js';
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
const form = document.querySelector('form');
|
|
const newPswdInput = document.querySelector('#new_pswd');
|
|
|
|
const rules = {
|
|
lengt10: (pwd) => pwd.length >= 10,
|
|
atl1num: (pwd) => /\d/.test(pwd),
|
|
atl1mayusc: (pwd) => /[A-Z]/.test(pwd),
|
|
atl1chrspe: (pwd) => /[!"#$%&\/()=?¡]/.test(pwd)
|
|
};
|
|
|
|
newPswdInput.addEventListener('input', function () {
|
|
const pwd = this.value;
|
|
for (let id in rules) {
|
|
document.querySelector(`#${id}`).textContent = rules[id](pwd) ? '✅' : '❌';
|
|
}
|
|
});
|
|
|
|
form.addEventListener('submit', function (e) {
|
|
const pwd = newPswdInput.value;
|
|
const valid = Object.values(rules).every(fn => fn(pwd));
|
|
if (!valid) {
|
|
e.preventDefault();
|
|
simpleNotification("Error", "La contraseña no cumple con todos los requisitos indicados.", "error");
|
|
}
|
|
});
|
|
}); |