Ver Mensaje Individual
  #26 (permalink)  
Antiguo 15/02/2012, 15:39
fevimo
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar nif/cif

Cita:
Iniciado por KarlanKas Ver Mensaje
Eso te pasa por conseguir tan fácilmente un comprobador de NIF!

Hace unos meses descubrí en una página como se comprobaba el CIF. por lo visto la última cifra es de control, y para hallarla se debe calcular algo con las cifras pares y algo con las impares... No me acuerdo bien, pero te pongo el código que hice basándome en esa página para comprobar si está bien.

Aquí te fundo los dos códigos a ver que te parece!
Código HTML:
<html>
<head>
	<title>Untitled</title>
	
	<script>
	function comprobarcif(cif){
	mal=false;
letras="ABCDEFGHKLMNPQS"
caracteres=[];

for(a=0;a<cif.length;a++){
caracteres[a]=cif.charAt(a);
}
if(letras.indexOf(caracteres[0])==-1){
esto=cif;
validar(esto);
return false;
}
resultadoImpares=0;
for(a=1;a<8;a=a+2){
numero=caracteres[a]*2;
numero=parseInt(numero/10)+numero%10;
resultadoImpares+=numero
}

resultadoImpares=parseInt(resultadoImpares/10)+resultadoImpares%10;

numeroPar=0;
for(a=2;a<8;a=a+2){
numeroPar+=parseInt(caracteres[a]);
}
total=resultadoImpares+numeroPar;
total=11-(total%10)+1;
if(total!=caracteres[8]){mal=true;}
if(mal){
pepe=alert("Parece ser que el C.I.F. no es correcto.\nPor favor corrijalo.");
document.introducir.CIF.focus();return false
}}
/*******************************
 Validación del nif. Por Carlitos. [noparse][email][email protected][/email][/noparse]
 Si usas este script, deja intactas estas líneas (créditos). Vale?
 También te agradecería un e-mail con tus comentarios.
*******************************/

function validar(abc)
{
dni=abc.substring(0,abc.length-1)
let=abc.charAt(abc.length-1)
if (!isNaN(let))
 {
  alert('Falta la letra')
  document.formulario.nif.focus()
  return false
 }
else
 {
  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
  posicion = dni % 23
  letra = cadena.substring(posicion,posicion+1)
  if (letra!=let.toUpperCase())
   {
    alert("Nif no válido")
    document.formulario.nif.focus()
    return false
   }
 }
alert("Nif válido")
}


	</script>
</head>

<body>
<form name="introducir">
NIF/CIF: <input type="text" name="CIF" onblur="comprobarcif(this.value)">
</form>


</body>
</html> 
Un saludo!
Este script sólo valida el cif de una empresa,no valida el resto de cif correspondientes a otro tipo de entidades:asociaciones,fundaciones,organimos públicos,etc. Sería un buen aporte completarlo.Gracias.A mí me vendría muy bien y supongo a otros muchos.