$('[type="password"]' && '[id="nuevaContrasenia"]').on("change keyup",function(e){ popoverPas=$(this) popoverPas.popover('dispose') estatusCont=password_Segura(e.target.value) clsAdd="border-"+((estatusCont.esSegura)?'success':'danger') clsRmv="border-"+((estatusCont.esSegura)?'danger':'success') popoverPas.addClass(clsAdd) popoverPas.removeClass(clsRmv) popoverPas.popover({ destroy: true, placement : 'bottom', trigger : 'hover, keyup', delay:{"show":300,"hide":200}, title:(estatusCont.esSegura)?'contraseña valida':'contraseña no valida', content:estatusCont.mensaje }) popoverPas.popover('show') }); $('[type="password"]' && '[id="confirmarNuevaContrasenia"]').on("change keyup",function(e){ popoverPas=$(this) popoverPas.popover('dispose') let valNuevaContrasenia = obtenerValorPorId(idNuevaContrasenia); let valConfirmarNuevaContrasenia = obtenerValorPorId(idConfirmarNuevaContrasenia); if (valNuevaContrasenia !== valConfirmarNuevaContrasenia) { popoverPas.addClass('border-danger') popoverPas.removeClass('border-success') popoverPas.popover('show') } else{ popoverPas.addClass('border-success') popoverPas.removeClass('border-danger') popoverPas.popover('show') } }); // Misma regla que el back (inicio_sesion/py/config.py): sin espacios al inicio ni al final; en medio sí. var ERROR_CONTRASENIA_ESPACIOS_EXTREMOS = 'La contraseña no puede empezar ni terminar con espacios'; function contraseniaTieneEspaciosEnExtremos(text){ return /^\s|\s$/.test(text || ''); } function password_Segura(text){ let minuscula = /(?=.*[a-z])/; let mayuscula=/(?=.*[A-Z])/; let numero=/(?=.*[0-9])/; let caracter=/(?=.*[!@#\$%\^&\*+\/ \-=:;~?¿\[\]\(\)\{\}])/; let testMinuscula=minuscula.test(text); let testMayuscula=mayuscula.test(text); let testNumero=numero.test(text); let testCaracter=caracter.test(text); let testEspacios=contraseniaTieneEspaciosEnExtremos(text); let esSegura=testMinuscula && testMayuscula && testNumero && testCaracter && text.length>7 && !testEspacios; let message=((text.length>7)?"":"8 carcateres, ")+((testMinuscula)?"":"una minuscula, ")+((testMayuscula)?"":"una Mayuscula, ")+((testNumero)?"":"un numero, ")+((testCaracter)?"":"un caracter especial(!, @, #, $, %, ^, &, *,...)") if (testEspacios) { message = ERROR_CONTRASENIA_ESPACIOS_EXTREMOS + (message ? ". Además debe contener: " + message : ""); } return { esSegura:esSegura, mensaje:message }; }