Bueno, si no estoy equivocado .... para comprobar que un DNI sea correcto debe coincidir los digitos con su letra, para ello yo la genero de la siguiente manera:
Código PHP:
function letraNIF(nif) {
var cadena = 'TRWAGMYFPDXBNJZSQVHLCKE';
var nifnum = parseInt(nif, 10);
var posicion = nifnum % 23;
return nif + cadena.charAt(posicion);
}
function verLetraNIF() {
document.formulario.DNI.value = letraNIF(document.formulario.DNI.value);
}
Eso es para DNIs españoles