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 ****************************************************/