$(document).on('input', '.rut', function () { var rut = $(this); var valor = rut.val().replace('.',''); valor = valor.replace('-', ''); cuerpo = valor.slice(0, -1); dv = valor.slice(-1).toUpperCase(); rut.val(cuerpo + '-'+ dv); if(cuerpo.length < 7) { rut.addClass("error"); return false; } suma = 0; multiplo = 2; for(i = 1; i <= cuerpo.length; i++) { index = multiplo * valor.charAt(cuerpo.length - i); suma = suma + index; if(multiplo < 7) { multiplo = multiplo + 1; } else { multiplo = 2; } } dvEsperado = 11 - (suma % 11); dv = (dv == 'K') ? 10 : dv; dv = (dv == 0) ? 11 : dv; if(dvEsperado != dv) { rut.addClass("error"); return false; } rut.removeClass("error"); }); $(document).on('keypress', '.rut', function (e) { key = e.keyCode || e.which; tecla = String.fromCharCode(key).toLowerCase(); letras = "1234567890k";// "1234567890-k" especiales = "8-37-39-46"; tecla_especial = false for(var i in especiales){ if(key == especiales[i]){ tecla_especial = true; break; } } if(letras.indexOf(tecla)==-1 && !tecla_especial){ return false; } });