Valida_clave
HTML
<p>
Debe contener al menos 8 caracteres y contar con letras mayúsculas, minúsculas, números y un carácter de tipo @$!%*?&:.,;¿
</p>
Run <input type="text" id="rut" value="">
DV <input type="text" id="dv" value="">
Nombre <input type="text" id="mombre" value="" style="text-transform:uppercase">
<br>
<br>
Clave
<input type="text" id="clave" maxlength="10">
<br>
<p id="expresion">
</p>
<br>
<input type="button" id="enviar" value="Enviar">
JavaScript
$("#clave").on('blur',function(){
var rut= $("#rut").val();
var dv= $("#dv").val();
var mombre= $("#mombre").val();
sismaule_valida_clave($(this).val(),"#clave",rut,dv,mombre);
});
function sismaule_valida_clave(clave,campo,rut,dv,nombre){
//Cortar string nombre
var usu_nombre = nombre.split(' ')[0];
var usu_ap_pat = nombre.split(' ')[1];
var usu_ap_mat = nombre.split(' ')[2];
//Minuscula
var usu_nombre_minus = usu_nombre.toLowerCase();
var usu_ap_pat_minus = usu_ap_pat.toLowerCase();
var usu_ap_mat_minus = usu_ap_mat.toLowerCase();
//Capitalizar
var usu_nombre_capital = usu_nombre_minus[0].toUpperCase() + usu_nombre_minus.slice(1)
var usu_ap_pat_capital = usu_ap_pat_minus[0].toUpperCase() + usu_ap_pat_minus.slice(1);
var usu_ap_mat_capital = usu_ap_mat_minus[0].toUpperCase() + usu_ap_mat_minus.slice(1);
//Parte de la cadena (ej: 17449443)
var usu_rut_a=rut.substring(0,4); //1744
var usu_rut_b=rut.substring(rut.length - 4); //9443
var usu_rut_c=rut.substring(2,6); //4494
var usu_rut_d=(rut+dv).substring((rut+dv).length - 4); //4436
// Expresion regular
var r1 =/^(?=.*\d)(?=.*[A-Z])(?=.*[@$!%*?&:.,;¿])/;
var r2 = new RegExp('(?!.*?(?:'+rut+'|'+usu_rut_a+'|'+usu_rut_b+'|'+usu_rut_c+'|'+usu_rut_d+'|'+usu_nombre+'|'+usu_ap_pat+'|'+usu_ap_mat+'|'+usu_nombre_minus+'|'+usu_ap_pat_minus+'|'+usu_ap_mat_minus+'|'+usu_nombre_capital+'|'+usu_ap_pat_capital+'|'+usu_ap_mat_capital+')).*');
var r3 =/(?!.*(.)\1)\S{8,10}$/;
//Contatenar expresiones regulares
var exreg = new RegExp(r1.source + r2.source + r3.source);
$("#expresion").text(exreg);
//Validar expresion regular
var validar = clave.match(exreg);
if(!validar){
alert('La contraseña debe tener: \n -Entre 8 y 10 caracteres. \n -Al menos un dígito. \n -Al menos una minúscula. \n -Al menos una mayúscula. \n -Al menos un carácter @$!%*?&:.,;¿ \n -No tener caracteres repetidos consecutivos. \n -No tener parte del nombre '+nombre+' \n -No tener...