Ver Mensaje Individual
  #27 (permalink)  
Antiguo 31/10/2012, 20:40
lute_htw
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Validar nif/cif

Hola !! me hacia falta algo que validara en un mismo campo el NIF / CIF / NIE . Rebuscando , alfin consegui mi propio script tomando recortes ( soy un poco beginner ) Asique nada , soy nuevo y quiero poner mi granitop de arena AHI VA !!!!!!!! TESTENLO ami me en un principio me va del hujo!!!
Código:


Código Javascript:
Ver original
  1. function nifcifnie(entrada){
  2.    
  3.     var filternif = /^([0-9]){8}([TRWAGMYFPDXBNJZSQVHLCKE])$/;
  4.     var filtercif = /^([ABCDEFGHJKLMNPQSV])([0-9]){7}([0-9A-J])$/;
  5.     var filternie = /^([XYZ])([0-9]){7}([TRWAGMYFPDXBNJZSQVHLCKE])$/;
  6.    
  7.          ////// SE COMPRUEBA CON LOS FILTER QUE TIPO DE DOCUMENTO ES FACILITADO /////
  8.          
  9.          if(filternif.test(entrada)){     ///// SI ES NIF
  10.            
  11.             var dni         = parseInt(entrada.substring(0,8));
  12.             var letranif = entrada.charAt(8);
  13.             var rangnif = 'TRWAGMYFPDXBNJZSQVHLCKE';
  14.             var seldni      = dni%23;
  15.             var pru = rangnif.charAt(seldni);
  16.            
  17.                                        
  18.             if(pru!=letranif){
  19.                 alert('Error al verificar el NIF');
  20.                 return;
  21.             }
  22.        
  23.         }else if(filtercif.test(entrada)){   /////// SI ES CIF
  24.            
  25.                 var par = 0;
  26.                 var imp = 0;
  27.                 var letras="ABCDEFGHKLMNPQS";
  28.                 var let=entrada.charAt(0);
  29.                
  30.                 for (c=2;c<8;c+=2){
  31.                      
  32.                   var    par = par+parseInt(entrada.charAt(c))
  33.                      
  34.                       }
  35.  
  36.                 for (c=1;c<9;c+=2){
  37.                      
  38.                 var f = 2*parseInt(entrada.charAt(c))
  39.                       if (f > 9) f = 1+(f-10)
  40.                 var imp = imp+f;
  41.                 }
  42.  
  43.                 var parc = par + imp
  44.  
  45.                 control = (10 - ( parc % 10))
  46.  
  47.                 if (control!=entrada.charAt(8)){
  48.                      
  49.                       alert("Error al verificar el CIF")
  50.                      
  51.                       return;                  
  52.                       }
  53.                    
  54.                    
  55.                        
  56.        
  57.         }else if(filternie.test(entrada)){            //////// SI ES NIE ////////
  58.            
  59.              if(entrada.substring(0,1)=='X'){
  60.                  
  61.                                  var preletra ='0';
  62.              }
  63.              if(entrada.substring(0,1)=='Y'){
  64.                                  
  65.                                  var preletra ='1';
  66.                          }
  67.              if(entrada.substring(0,1)=='Z'){
  68.                                  
  69.                                  var preletra ='2';
  70.                          }
  71.            
  72.                           var nie      = parseInt(preletra+entrada.substr(1,8));
  73.                          var letranie = entrada.charAt(8);
  74.                          var rangonie = 'TRWAGMYFPDXBNJZSQVHLCKE';
  75.                          var letranieveri = rangonie.charAt(nie % 23);
  76.  
  77.                          if(letranieveri != letranie){
  78.                              alert('Error al verificar el NIE');
  79.                              return;
  80.                          }
  81.                          
  82.  
  83.            
  84.         }else{
  85.             alert('Los datos NIF/CIF/NIE carecen de un formato correcto');
  86.             return;
  87.         }
  88.  
  89. }

Última edición por lute_htw; 31/10/2012 a las 20:46