17/03/2008, 08:09
|
| | Fecha de Ingreso: noviembre-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes Puntos: 0 | |
validación NIF,CIF, NIE Hola he estado utilizando este script para validar el NIF, CIF y NIE. Hasta hoy que me han colado lo siguiente como NIF: 5215815JT alguien podría indicarme donde está el error mil gracias.
paso el código
Código:
/-->
comprobar nif.......................................................................................
if (campoVacio(document.form.nif.value))
{
alert("Ha d'omplir el camp NIF");
form.nif.focus();
return false;
}
var a = document.form.nif;
var temp=a.value.toUpperCase();
var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET";
var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
if (temp!==''){
// No es un CIF ni un NIE, es un DNI
if (!/^[ABCDEFGHKLMNPQSX]/.test(temp)){
posicion = a.value % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
letra = cadenadni.charAt(posicion);
if (!/^[A-Za-z0-9]{9}$/.test(temp)){
//Es menos de 9 dígitos, añadimos la letra
alert('El DNI té menys de 9 dígits');
a.value=a.value+letra ;
form.nif.focus();
return false;
}
else{
//Tiene los 9 dígitos, comprobamos si la letra esta bien
posicion = a.value.substring(8,0) % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
letra = cadenadni.charAt(posicion);
var letradni=temp.charAt(8);
if (letra != letradni){
alert("La Lletra del DNI no es correcta."+letradni+" es diferent a "+letra);
form.nif.focus();
return false;
}
}
}else{
//Es un NIE o un CIF
if (/^[X]/.test(temp)){ //Es un NIE
var temp1=temp.substr(1,8);
posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
letra = cadenadni.substring(posicion,posicion+1);
if (!/^[A-Za-z0-9]{9}$/.test(temp)){ //Es menos de 9 dígitos, añadimos la letra
alert('Te menys de 9 dígits en el NIE');
a.value=a.value+letra ;
form.nif.focus();
return false;
}else{ //Tiene los 9 dígitos, comprobamos si la letra esta bien
var temp1=temp.substr(1,7);
posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
letra = cadenadni.charAt(posicion);
var letranie=temp.charAt(8);
if (letra != letranie){
alert("La lletra del NIE no es correcta."+letranie+" es diferent a "+letra);
form.nif.focus();
return false;
}
}
}else{ //Es un CIF
var cifcontrol = 0;
for( i = 2; i <= 6; i += 2 ){
cifcontrol = cifcontrol + v1[ parseInt(temp.substr(i-1,1)) ];
cifcontrol = cifcontrol + parseInt(temp.substr(i,1));
};
cifcontrol = cifcontrol + v1[ parseInt(temp.substr(7,1)) ];
cifcontrol = (10 - ( cifcontrol % 10));
if (!/^[A-Za-z0-9]{9}$/.test(temp)){ //Es menos de 9 dígitos, añadimos el dígito de control
alert('El Cif té menys de 9 dígits');
form.nif.focus();
return false;
a.value=a.value+cifcontrol;
}else{
if (cifcontrol!=temp.substr(8,1)){
alert ('El dígit de control del CIF no es correcte.El correcte es '+cifcontrol);
form.nif.focus();
return false;
}
}
}
}
}
/********************************** FIN COMPROBACION NIF,DNI,CIF ****************************************************/
|