Comunidad de diseño web y desarrollo en internet online

Validar Rut Chileno con FLEX

Citar            
MensajeEscrito el 26 Sep 2010 04:04 am
Hola a todos

Aquí nuevamente pidiendo su ayuda a ustedes los Master de la programación :lol:
Estoy en la validación del RUT , me gustaría que al ingresar el RUT en un TextInput me gustaría que automáticamente me agregue lo puntitos y el GUION (-).

Por ejemplo:

Ingreso 12345678 al ingresar eso al TextInput aprieto ENTER
Y automáticamente me aparezca 12.345.678-9

Se que mucho Chilenos, van a necesitar que le ayuden en este tipo de problema que es la validación del RUT.. y seria GENIAL que me pudieran ayudar a través con algún código.. No solamente me ayudaran a mi si no también a varios socios que pasaran por este tipo de problema..

MUCHAS GRACIAS A TODO

Espero su AYUDA grandemente……………….. :cool:

Por shinodax

41 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2010 02:12 am
Porfaaaa alguien que me ayudeee...

gracias

Por shinodax

41 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2010 03:20 pm
Ok, veamos en que punto estás: ¿sabes separar un string de a 3 caracteres?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Oct 2010 09:38 pm
Hola shinodax

Mira yo ando buscando lo mismo, también estoy iniciando en As3 e hice ahora durante este rato una funcion que nos puede servir para hacer la separacion de rut, pero solo hace eso, falta todavía la validación. A lo mejor no es el código mas depurado o mas eficiete pero cumple el objetivo que andamos buscando que nos separa en puntos(.) y guión (-) nuestro rut, ya sea de que sean 9 o 8 caracteres los ingresados, si tienes alguna observación por favor hasmela saber y bién si tienes la posibilidad de ayudarme en la verificación mucho mejor.

os dejo el código

Código ActionScript :

public function separaRut():void
         {
            if(txt_rut.text !="")
            {
            var rut:String = txt_rut.text;
            trace (rut);
               if(rut.length == 9)
               {
               var valor1:String = rut.substring(0,2);
               valor1 = valor1 + ".";
               var valor2:String = rut.substring(2,rut.length-4);
               valor2 = valor2 + ".";
               var valor3:String = rut.substring(5,rut.length-1);
               valor3 = valor3 + "-";
               var valor4:String = rut.substring(8);
               valor4 = valor4;
               rut_completo = valor1 + valor2 + valor3 + valor4;
               
               
               txt_rut.text = rut_completo;
               trace(txt_rut.text);
               funcionValidaRut();// Aquí llamo a la funcion que me validad el rut
               }            
               else if(rut.length == 8)
               {
               var valor5:String = rut.substring(0,1);
               valor5 = valor5 + ".";
               
               var valor6:String = rut.substring(1,rut.length-4);
               valor6 = valor6 + ".";
               var valor7:String = rut.substring(4,rut.length-1);
               valor7 = valor7 + "-";
               var valor8:String = rut.substring(7);
               valor8 = valor8;
               rut_completo = valor5 + valor6 + valor7 + valor8;
                  
                  
                  txt_rut.text = rut_completo;
                  trace(txt_rut.text);
                  funcionValidaRut(); // Aquí llamo a la funcion que me validad el rut
                  
               }
            }
            
         } 



Saludos

Por cafeheco

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 05 Oct 2010 09:40 pm
shinodax

Se me olvidó decirte que txt_rut.text es el campor del textImput que tengo para ingresar el rut.

Saludos

Por cafeheco

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 05 Oct 2010 11:48 pm
Pasos para validar R.U.T.
Sea el 20.142.161-6, se toma la parte numerica, osea, 20.142.161, se multiplica cada digito, del ultimo al primero, por los siguentes numeros:
2 0 1 4 2 1 6 1 , osea , 1 x 2, 6 x 3, etc...
3 2 7 6 5 4 3 2 los resultados de las multiplicaciones se suman (71) y se divide por 11, se toma la parte entera de division (6) y se multiplica por 11 (66), despues resto 71 menos 66 es igual a 5 y a 11 le resto 5 quedando como digito verificador 6, si el resultado es 10 el digito queda como K y si es 11 queda como 0. 20.142.156-k

con eso es suficiente para que la logica se implemente en as3 o en lo que ustedes deseen

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Oct 2010 09:41 pm
Si aún necesitas de ayuda te dejo un código que utilice una vez en una aplicación web. Solo debes considerar que en este código se tienen 2 textInput:

    txiRut1 --> En este el usuario ingresar la parte numérica del RUT
    txiRut2 --> En este el usuario ingresa el dígito verificador.


Sin más rodeos aquí va el código:

Código ActionScript :

private function validarRut():void
             {
                   // Definicion de Variables Utilizadas
            var suma:int=0;
            var rut:String=txiRut1.text;
            var numMag:int=2;
            var resto:int=0;
            var i:int;
            
            // Defino el arreglo con los posibles digitos verificadores
            var digVer:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "K", "0");
            var parteNumerica:Array = new Array();
            
            for(i=0;i<rut.length;i++)
            {
               parteNumerica[i]=rut.charAt(i);
            }
            
            // Calcula el digito verificador del rut
            for (i=parteNumerica.length-1; i>=0; i--, numMag++)
            {
               suma += parteNumerica[i]*numMag;
               if (numMag>6)
               {
                  numMag = 1;
               }
            }
            // Esto arroja el valor que debe tener el digito verificador
            resto = 11-(suma%11);            
            //Alert.show("resto-->"+resto+" || digVer[resto]-->"+digVer[resto]);
            
            if(digVer[resto] == txiRut2.text.toUpperCase())
            {
               Alert.show("Es valido");
            }
            else
            {
               Alert.show("No es valido");
            }
             }

Por skwmak

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2010 05:14 am
Muchas Gracias a todosssss :wink: los quiero :love: ajajjjaja :lol:

CODIGO COMPLETO .. si alguien tiene algo mejorado BKAN...

Código Flex :

<?xml version="1.0" encoding="utf-8"?>
<!--
Definimos la aplicación añadiendo una función creationComplete que realizará una consulta con el
remote que definiremos.
-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">


<mx:Script>
    <![CDATA[ 
    import mx.collections.ArrayCollection;
    import mx.controls.dataGridClasses.DataGridColumn;
    import mx.rpc.remoting.*;
    import mx.controls.*;
    import mx.rpc.events.*
    import flash.events.Event;
        
     
  public function separaRut():void 
         { 
            if(juntarTodo.text !="") 
            { 
            var rut:String = juntarTodo.text; 
            
              
              trace (rut); 
               if(rut.length == 9) 
               { 
               var valor1:String = rut.substring(0,2); 
               valor1 = valor1 + ".";                
               var valor2:String = rut.substring(2,rut.length-4); 
               valor2 = valor2 + ".";                
               var valor3:String = rut.substring(5,rut.length-1); 
               valor3 = valor3 + "-";                
               var valor4:String = rut.substring(8); 
               valor4 = valor4;                
               txiRut1.text = valor1 + valor2 + valor3 + valor4; 
               
               trace(txiRut1.text);              
                        
              
               }             
               else if(rut.length == 8) 
               { 
               var valor5:String = rut.substring(0,1); 
               valor5 = valor5 + ".";                 
               var valor6:String = rut.substring(1,rut.length-4); 
               valor6 = valor6 + ".";                
               var valor7:String = rut.substring(4,rut.length-1); 
               valor7 = valor7 + "-";                
               var valor8:String = rut.substring(7); 
               valor8 = valor8;                
               txiRut1.text = valor5 + valor6 + valor7 + valor8; 
                                    
               trace(txiRut1.text); 
                         
               } 
            }
            
         }  
         
         private function validarRut():void 
             { 
                   // Definicion de Variables Utilizadas 
            var suma:int=0; 
            var rut:String=txiRut1.text; 
            var ultimoN:String=txiRut1.text;
            var numMag:int=2; 
            var resto:int=0; 
            var i:int; 
            

            //Aqui vemos cuantos digitos tiene el rut
              
                if(rut.length == 9) {
                   
                     rut = rut.substring(0,8);
                      txiRut1.text=rut;
                      ultimoN = ultimoN.substring(8,9); 
                      txiRut2.text=ultimoN;
                   
                }
                else if(rut.length == 8) 
                {                   
                     rut = rut.substring(0,7);
                      txiRut1.text=rut;
                      ultimoN = ultimoN.substring(7,8); 
                      txiRut2.text=ultimoN;
                   
                }

             
            // Defino el arreglo con los posibles digitos verificadores 
            var digVer:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "K", "0"); 
            var parteNumerica:Array = new Array(); 
             
            for(i=0;i<rut.length;i++) 
            { 
               parteNumerica[i]=rut.charAt(i); 
            } 
             
            // Calcula el digito verificador del rut 
            for (i=parteNumerica.length-1; i>=0; i--, numMag++) 
            { 
               suma += parteNumerica[i]*numMag; 
               if (numMag>6) 
               { 
                  numMag = 1; 
               } 
            } 
            // Esto arroja el valor que debe tener el digito verificador 
            resto = 11-(suma%11);             
            //Alert.show("resto-->"+resto+" || digVer[resto]-->"+digVer[resto]); 
             
            if(digVer[resto] == txiRut2.text.toUpperCase()) 
            { 
               Alert.show("Es valido"); 
               separaRut();
               juntarTodo.text= rut + ultimoN;
               separaRut();
               
            } 
            else 
            { 
               Alert.show("No es valido"); 
               txiRut1.text="";
               txiRut2.text="";
               juntarTodo.text="";
               
            } 
             }   
     
    ]]>
</mx:Script>
   <mx:TextInput id="txiRut1" x="68" y="49" width="103"/>
   <mx:TextInput id="txiRut2" x="105" y="91" width="26"/>
   <mx:Button click="validarRut()" x="340" y="69" label="verificar"/>
   <mx:TextInput id="juntarTodo" x="68" y="123" width="103"/>
</mx:Application>

Por shinodax

41 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2010 05:22 am
AAAAAAAAAAAA disculpeen me olvide ORDENAR los TextInput xD

SE INGRESA EL RUT EN EL TEXTINPUT ( txiRut1 ) ....... ojo: se ingresa todo menos los puntitos y el guion

................. GRACIAS A TODOS LOS QUIERO............. XD .......JAJAJAAJJA

Por shinodax

41 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Oct 2010 05:31 pm
Gracias a ti por la segunda parte..
Saludos

Por cafeheco

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Oct 2010 06:55 pm
eso de los quiero a todos me suena a hueco ..jajaaj..todos aqui somos bien machos..ajajaja broma

Por xcom

Claber

530 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.