algoritmo calcular letra dni

Calculadora de letra DNI

Introduce el número de DNI (sin letra) para obtener la letra correcta según el algoritmo oficial de módulo 23.

Consejo: si tu número tiene menos de 8 cifras, se considera con ceros a la izquierda.


Verificar un DNI completo

Acepta formatos como 12345678Z o 12345678-Z.

¿Cuál es el algoritmo para calcular la letra del DNI?

El cálculo de la letra del DNI en España sigue una regla fija, simple y determinista. Se toma el número del documento (la parte numérica), se divide entre 23 y se obtiene el resto. Ese resto se usa como posición dentro de una cadena oficial de letras.

La secuencia oficial es:

TRWAGMYFPDXBNJZSQVHLCKE

De esta forma, cada número de DNI queda asociado a una única letra, lo que ayuda a detectar errores de escritura y validar rápidamente identificaciones en formularios, sistemas bancarios y aplicaciones administrativas.

Pasos del cálculo (fórmula práctica)

1) Toma la parte numérica

Ejemplo: si tienes 12345678Z, tomas 12345678.

2) Aplica módulo 23

Calcula:

resto = número % 23

En el ejemplo: 12345678 % 23 = 14.

3) Busca la letra por índice

Con el resto 14, buscas en la cadena TRWAGMYFPDXBNJZSQVHLCKE. En índice 14 corresponde la letra Z.

4) Resultado final

El DNI completo es: 12345678Z.

Tabla rápida de resto y letra

  • 0 → T
  • 1 → R
  • 2 → W
  • 3 → A
  • 4 → G
  • 5 → M
  • 6 → Y
  • 7 → F
  • 8 → P
  • 9 → D
  • 10 → X
  • 11 → B
  • 12 → N
  • 13 → J
  • 14 → Z
  • 15 → S
  • 16 → Q
  • 17 → V
  • 18 → H
  • 19 → L
  • 20 → C
  • 21 → K
  • 22 → E

Pseudocódigo del algoritmo

letras = "TRWAGMYFPDXBNJZSQVHLCKE"
numero = parte_numerica_dni
resto = numero mod 23
letra = letras[resto]
dni_completo = numero + letra

Implementación en JavaScript

Este mismo algoritmo es el que utiliza la calculadora superior. En frontend se puede resolver con muy pocas líneas:

const LETTERS = "TRWAGMYFPDXBNJZSQVHLCKE";
function letraDNI(numero) {
  return LETTERS[numero % 23];
}

Errores comunes al validar el DNI

  • No convertir la letra a mayúscula: conviene normalizar para evitar falsos errores.
  • Aceptar caracteres no numéricos: la parte numérica debe contener solo dígitos.
  • No contemplar ceros a la izquierda: para mostrar, puede ser útil usar 8 cifras.
  • Confundir DNI con NIE: el NIE usa un paso previo (X, Y, Z) antes del módulo 23.

Cuándo usar este cálculo en tus proyectos

Si estás desarrollando formularios de alta, procesos KYC, CRM internos o flujos de firma, validar la letra del DNI mejora la calidad de los datos desde el primer paso. No sustituye una verificación oficial de identidad, pero sí reduce errores tipográficos y registros inválidos.

En términos de UX, una validación instantánea en cliente evita que el usuario complete un formulario extenso y reciba el error al final. También reduce incidencias para soporte y retrabajo de backoffice.

Conclusión

El algoritmo para calcular la letra del DNI es corto, robusto y fácil de implementar. Solo necesitas la cadena oficial de letras y una operación módulo 23. Con esta base puedes construir calculadoras online, validaciones en JavaScript y comprobaciones en backend para mantener datos limpios y confiables.

Si quieres una comprobación rápida, usa la herramienta de esta página: introduce el número, calcula la letra y verifica el DNI completo en segundos.

🔗 Related Calculators