123456789 y automaticamnete quedarian 12.345.678-9.... para formatear el rut tengo un codigo que me ayudaron a hacer y que realiza lo que mencione arriba el problema esta en que cuando se trata de un rut que es menor a 10 millones lo formatea asi
98765432 y lo deja asi.... 98.765.43-2 siendo que deberia dejarlo asi 9.876.543-2
no se si explique bien mi problema.... adjunto codigo para ver si alguien me puede echar una mano con esto que la verdad me tiene media complicada pq no entiendo mucho javascript
Código Javascript:
Ver original
function Valida_Rut( Objeto ) { var tmpstr = ""; var intlargo = Objeto.value if (intlargo.length> 0) { crut = Objeto.value largo = crut.length; if ( largo <2 ) { alert('rut inválido') Objeto.focus() return false; } for ( i=0; i <crut.length ; i++ ) if ( crut.charAt(i) != ' ' && crut.charAt(i) != '.' && crut.charAt(i) != '-' ) { tmpstr = tmpstr + crut.charAt(i); } rut = tmpstr; crut=tmpstr; 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() ) { alert('El Rut Ingreso es Invalido') Objeto.value = ""; Objeto.focus() return false; } Objeto.focus() return true; } } function renameRutAndProcess(obj) { if (Valida_Rut(obj)) { var rut = obj.value; if (!/\./.test(rut)) { var nuevo = ""; for (var i = 0; i < rut.length; i++) { if (i == 1 || i == 4) { nuevo += rut[i] + '.'; } else if (i == (rut.length - 1)) { nuevo += '-' + rut[i]; } else { nuevo += rut[i]; } } obj.value = nuevo; } } }
espero anciosa que alguien me pueda ayudar.....
saludos ;)