Este ejemplo es muy sencillo pero muy útil. Consiste en calcular la letra del NIF a partir del número del DNI dentro de una página web con la ayuda de JavaScript.
El procedimiento del calculo consiste en realizar el módulo de 23. Su resultado nos dará una posición en una secuencia de letras (TRWAGMYFPDXBNJZSQVHLCKE). La letra situada en dicha posición será la letra del NIF.
Nosotros creamos la ristra de letras en una variable.
var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
Sobre el número del DNI calculamos el módulo (%) de 23.
var numero = dni%23;
Y obtenemos la letra de la cadena. Para ello nos ayudamos de la función substring (caracterInicio,numeroCaracteres). Veamos como seria esta línea de código:
form1.letra.value = letras.substring(numero,numero+1);
Los datos los vamos a obtener de un formulario. Es por ello que cabe la posibilidad que el usuario nos introduzca datos erróneos (de manera intencionada o no). Para comprobar que el número introducido es correcto deberemos de comprobar que son 8 dígitos. Dicha comprobación la realizaremos mediante una expresión regular.
if (!/^d{8}$/.test(dni)) {
alert ("El numero introducido no es valido");
return false;
}
Ah, se me olvidaba. La función la ejecutaremos cuando el usuario abandone el campo del número (se supone, en un proceso normal, que para pasar al campo de la letra). Es por ello que utilizaremos el evento onBlur de dicho campo.