Tema: validar rut
Ver Mensaje Individual
  #9 (permalink)  
Antiguo 02/03/2007, 14:26
rockerox
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Re: validar rut

Código:
var VALIDAR = {
   alfanumerico: function(input){
      var find = new RegExp(/^\w{1,}$/);
      if(!find.test(input))return(false);
      return true;
      
   },
   email: function(input){
      input = input.replace(";",",");
      var listcorreo = input.split(",");
      for (i=0; i < listcorreo.length; i++)if( listcorreo[i].search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig) )return (false);
      return true;
   },
   
   getDV: function(input){
      var M=0,S=1;for(;input;input=Math.floor(input/10))
      S=(S+input%10*(9-M++%6))%11;return S?S-1:'K';
   },
   
   rut: function(input){
      var find = new RegExp(/^(\d{1,8})-([K|0-9])$/);
      if(find.test(input)) {
            var M=0,S=1,T=RegExp.$1;
            for(;T;T=Math.floor(T/10))
            S=(S+T%10*(9-M++%6))%11;
            return ((S?S-1:'K') == RegExp.$2 ? true : false);
      }else{
            return false;
      }
      return true;
   },
   
   numero: function(input){
      var find = new RegExp(/^(?:\+|-)?\d+\.\d*$/);
      if(!find.test(input))return(false);
      return true;
   },
   
   entero: function(input){
      var find = new RegExp(/^(?:\+|-)?\d+$/);
      if(!find.test(input))return(false);
      return true;
   },
   
   real: function(input){
      var find = new RegExp(/^(?:\+|-)?\d+[\.|,]\d*$/);
      if(!find.test(input))return(false);
      return true;
      
   },
   
   hora: function(input){
      var find = new RegExp(/^(0[0-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/);
      if(!find.test(input))return(false);
      return true;
      
   },
   
   fecha: function(input){
      var find = new RegExp(/^([0-9]{2})(-|\/)([0-9]{2})(-|\/)([0-9]{4})$/);
      var borrar = "";
      if(find.test(input)){   
         borrar = input;
         if((input.substr(2,1) == "-") && (input.substr(5,1) == "-")){     
               for(i=0; i<10; i++){
           if(((input.substr(i,1)<"0") || (input.substr(i,1)>"9")) && (i != 2) && (i != 5)){
             borrar = "";
             break; 
                  } 
         }
            if(borrar){
               a = input.substr(6,4);
               m = input.substr(3,2);
               d = input.substr(0,2);
               if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31)){
                  borrar = "";
               }else{
                  if((a%4 != 0) && (m == 2) && (d > 28)){
                     borrar = ""; // Año no viciesto y es febrero y el dia es mayor a 28
                  }else{
                     if((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29))){
                        borrar = "";
                     }
                  }
               }
            }
         }
      }
      if (borrar == ""){
         return false;
      }else{
         return true;
      }
   }
   
}
Para validar el rut en esta pequeña clase, debes hacerlo de la siguiente manera:
Código:
<script type="text/javascript">
  var campoRUT = document.getElementById("txtRUT");
  campoRUT.validar = function(){
     if(!VALIDAR.rut(this.value)){
        throw (new String("El campo RUT no es válido"));
     }
     return true;
  }

  function formulario_submit(){
     try{
        campoRUT.validar();
        // Sentencias ...... 
     }catch(ex){
       alert(ex);
     }
  }
</script>