function checkDV(crut) { largo = crut.length; if ( largo > 2 ) rut = crut.substring(0, largo - 1); else rut = crut.charAt(0); dv = crut.charAt(largo-1); if ( rut == null || dv == null ) return 0; var dvr = '0'; suma = 0; mul = 2; for (i= rut.length -1 ; i >= 0; i--) { suma = suma + rut.charAt(i) * mul; if (mul == 7) mul = 2; else mul++; } res = suma % 11; if (res==1) dvr = 'k'; else if (res==0) dvr = '0'; else { dvi = 11-res; dvr = dvi + ""; } if ( dvr != dv.toLowerCase() ) return false; return true; } function validaRut(objTextoStrRut) { if ( typeof objTextoStrRut == "string" ){ objTextoStrRut = document.getElementById(objTextoStrRut); } texto = objTextoStrRut.value; texto = texto.toUpperCase() var tmpstr = ""; for ( i=0; i < texto.length ; i++ ) if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' ) tmpstr = tmpstr + texto.charAt(i); texto = tmpstr; largo = texto.length; if ( largo < 2 ) { alert("Debe ingresar el rut completo"); objTextoStrRut.focus(); objTextoStrRut.select(); return false; } for (i=0; i < largo ; i++ ) { if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" ) { alert("El valor ingresado no corresponde a un rut válido"); objTextoStrRut.focus(); objTextoStrRut.value = ""; objTextoStrRut.select(); return false; } } var invertido = ""; for ( i=(largo-1),j=0; i>=0; i--,j++ ) invertido = invertido + texto.charAt(i); var dtexto = ""; dtexto = dtexto + invertido.charAt(0); dtexto = dtexto + '-'; cnt = 0; for (i=1,j=2; i=0; i--,j++ ) invertido = invertido + dtexto.charAt(i); // objTextoStrRut.value = invertido; if ( checkDV(texto) ) { return true; } else { alert("El rut es incorrecto"); objTextoStrRut.focus(); return false; } }