Articulos de Colaboradores
Codigos Fuente
Compiladores
Documentos y Manuales
Programas y Librerias
Recursos y Articulos
Videotutoriales
Servidores (Aplicaciones)
Controles ActiveX

Analisis SEO
Conocer PageRank
Encriptar JS/HTML
Convertir HTML a JavaScript
Convertir HTML/JS a PHP
Tablas ASCII/HTML
Base Windows API
Directorio de Empresas
Libros de Informatica
Rotador de Banners

ARTICULOS TECNICOS SOBRE PROGRAMAS Y PROGRAMACION
PROGRAMACION Y DISEÑO PARA PROGRAMADORES Y WEBMASTERS


Como validar CIF (Codigo de Identificacion Fiscal) desde JavaScript






Como validar CIF (Código de Identificación Fiscal) desde JavaScript
Carlos Valencia
.
El CIF (Código de Identificación Fiscal) es un elemento de identificación administrativa para organizaciones y consta de 9 dígitos:

   _        _    _   _   _   _   _    _        _
|_| |_|_|_|_|_|_|_| |_|
 ^   ^           ^   ^
 |   |_ Números _|   |
 |                   |
 |               Dígito de control, un número ó letra: 
 |               {Aó1,Bó2,Có3,Dó4,Eó5,Fó6,Gó7,Hó8,Ió9,Jó0}
 | 
Letra de tipo de Organización, una de las siguientes:
{A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S}
 

El primer dígito es una letra que indica el tipo de la organización y puede ser una de los siguientes:

A - Sociedad Anónima.
B - Sociedad de responsabilidad limitada.
C - Sociedad colectiva.
D - Sociedad comanditaria.
E - Comunidad de bienes.
F - Sociedad cooperativa.
G - Asociación.
H - Comunidad de propietarios.
K - Formato antiguo.
L - Formato antiguo.
M - Formato antiguo.
N - Formato antiguo.
P - Corporación local.
Q - Organismo autónomo.
S - Organo de la administración.

Los siete dígitos siguientes son números y el último es el dígito de control que puede ser un número ó una letra.

Las operaciones para calcular el dígito de control se realizan sobre los siete dígitos centrales y son las siguientes:

- Sumar los dígitos de la posiciones pares. Suma = A

- Para cada uno de los dígitos de la posiciones impares,  multiplicarlo por 2 y sumar los dígitos del resultado.
  Ej.: ( 8 * 2 = 16 --> 1 + 6 = 7 ).
  Acumular el resultado. Suma = B 

- Sumar A + B = C

- Tomar sólo el dígito de las unidades de C y restárselo a 10. Esta resta nos da D.

- A partir de D ya se obtiene el dígito de control. Si ha de ser numérico es directamente D y si se trata de una letra se corresponde
  con la relación: A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 0

Ejemplo para el C.I.F. : A58818501

- Utilizamos los siete dígitos centrales = 5881850

- Sumamos los dígitos pares: A = 8 + 1 + 5 = 14

- Posiciones impares:
    5 * 2 = 10 -> 1 + 0 = 1
    8 * 2 = 16 -> 1 + 6 = 7
    8 * 2 = 16 -> 1 + 6 = 7
    0 * 2 =  0 ->       = 0
  Sumamos los resultados: B = 1 + 7 + 7 + 0 = 15

- Suma parcial: C = A + B = 14 + 15 = 29

- El dígito de las unidades de C es 9. 
  Se lo restamos a 10 y nos da: D = 10 - 9 = 1

- Si el dígito de control ha de ser un número es 1 y si ha de ser una letra es la "A"

.
// Función que comprueba la entrada de datos
function CompruebaDatos(elCIF) 
{
  var resul = false;
  var temp = elCIF.value.toUpperCase(); // pasar a mayúsculas

  if (!/^[A-Za-z0-9]{9}$/.test(temp))  // Son 9 dígitos? 

     alert ("Longitud incorrecta, un CIF consta de 9 dígitos");

  else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) // Es una letra de las admitidas ?

     alert("El primer dígito es incorrecto, debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S ");

  else 

     resul = true;

  return resul;
}
 

// Función de validación del CIF, indica el dígito de control.
// La función recibe el CIF completo: A58818501
function ValidaCIF(F) 
{

  var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
  var temp = 0; 
  var temp1;

  
  for( i = 2; i <= 6; i += 2 ) 
    {
      temp = temp + v1[ parseInt(F.elCIF.value.substr(i-1,1)) ];
      temp = temp + parseInt(F.elCIF.value.substr(i,1));
    };

  temp = temp + v1[ parseInt(F.elCIF.value.substr(7,1)) ];

  temp = (10 - ( temp % 10));

  if( temp == 10 )
    alert( "El dígito de control es: J ó 0" );
  else
    alert( "El dígito de control es: "+temp ); 

  return true;
}





ProgramasProgramacion.com (ex-CGR Software.com)
© 2001-2024 C.G.R. @ Buenos Aires, Republica Argentina

Contacto | Privacidad