Traté de hacerlo a través de mi código de JAVA modificandolo para pasarlo a ActionScript, pero me da dos errores que hasta el momento no he podido aclarar.
Por lo que busque en Internet, algún código para Action Script, y encontré este:
Código :
on (release){
// Definicion de Variables Utilizadas
var Suma = 0;
var rut = xRut;
var NumMag = 2;
var Resto = 0;
// Defino el arreglo con los posibles digitos verificadores
var DigVer = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "K", "0");
var ParteNumerica = new Array();
// Valida que el rut no este vacio
if (rut.length == 0) { return false; }
// Copio solo la parte numerica, sin espacios ni puntos
// en otra variable para calcular el digito verificador
for (j=0, i=0; j<rut.length; j++)
{
if (rut.charAt(j) != ' ' && rut.charAt(j) != '.' && rut.charAt(j) != '-')
{
ParteNumerica[i] = rut.charAt(j);
++i;
}
}
// Se calcula el digito verificador del rut
for (i=ParteNumerica.length-1; i>=0; i--, NumMag++)
{
Suma += ParteNumerica[i]*NumMag;
trace(Suma +' '+ ParteNumerica[i] +' '+ NumMag);
if (NumMag>6) { NumMag = 1; }
}
Resto = 11-(Suma%11);
if (DigVer[Resto] != Dv.toUpperCase())
{
trace("Rut válido");
}
else
{
trace("Rut no válido");
}
}
En la web de su creador http://www.dcc.uchile.cl/~mortega/microcodigos/validarrut/actionscript.html se explica como utilizarlo en flash:
"Nota del Autor:
El código devuelve un true o false solamente, el que la persona que diseñe tiene que asignar la función que quiera. Usa dos campos de textos de input; uno de la pate numerica con la variable "xRut" y otro con el campo del dígito verificador "Dv". Este código va directamente en el boton de "aceptar" en el formulario en cuestión:"
El código devuelve un true o false solamente, el que la persona que diseñe tiene que asignar la función que quiera. Usa dos campos de textos de input; uno de la pate numerica con la variable "xRut" y otro con el campo del dígito verificador "Dv". Este código va directamente en el boton de "aceptar" en el formulario en cuestión:"
Sigo las instrucciones pero el problema es que si coloco un RUT (parte entera) bien, y la parte del Dígito Verificador Mal (con intención) me arroja que el RUT esta correcto igualmente.
Verifiqué el cálculo, paso a paso, pero esta bien
Este es el cálculo de JAVA que lo quize traspasar a Action Script, pero que no me resultó.
Código :
on (release){
var largo = 0;
var suma = 0;
var factor = 0;
var digito = 0;
largo = xRUT.length();
var factor = 2;
var dvi = String.valueOf(rut.charAt(largo-1))
for (i=largo -3 ; i>=0 ; i--)
{
digito = Integer.parseInt(String.valueOf(rut.charAt(i)));
suma = suma+(digito*factor);
factor++;
if(factor==8)
{
factor = 2;
}
}
var dv = String.valueOf(11-(suma/11));
if(dv.equals("10"))
{
dv="K";
}
if(dv.equals("11"))
{
dv="0";
}
if(dv.equals(dvi))
{
trace ("Correcto");
}
else
{
trace ("Incorrecto");
}
}Agradecería su ayuda
