Hola amigos del foro... mi consulta es la siguiente estoy haciendo un formulario donde debo darle formato a un rut chileno de la siguiente manera... a travez de un input el usuario ingresara su rut sin puntos ni guines y a travez de una funcion en javascript este automaticamente le pondra los puntos y el guion donde corresponda seria algo asi
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 originalfunction 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 ;)