Validador de DNI y NIE (España)

Valida DNI y NIE españoles en lote: formato y letra de control.

Los DNI se validan en tu navegador — no se envían a ningún lado

Verifica el formato y la letra módulo 23 — en lote

Ejemplo cargado: edítalo o límpialo

Total
Válidos
Inválidos

Qué revisa este validador y qué no puede confirmar

El DNI (Documento Nacional de Identidad) es el número de identificación que se asigna a todo ciudadano español, y el NIE (Número de Identidad de Extranjero) es su equivalente para residentes extranjeros. Ambos aparecen en declaraciones de impuestos, contratos bancarios, facturas y cada trámite formal en España, así que digitarlos mal tiene consecuencias reales — desde declaraciones rechazadas hasta registros que no cuadran. Este validador comprueba uno o cientos de DNI y NIE a la vez, y te dice exactamente qué tiene de malo cada uno.

El formato del DNI son 8 dígitos seguidos de una letra de control. El formato del NIE es una letra inicial (X, Y o Z) seguida de 7 dígitos y una letra de control. Ambos usan el mismo algoritmo: se divide la parte numérica entre 23 y se busca el resto en una tabla fija de 23 letras — T, R, W, A, G, M, Y, F, P, D, X, B, N, J, Z, S, Q, V, H, L, C, K, E. Para los NIE, la letra inicial se reemplaza por un número: X es 0, Y es 1, Z es 2.

El algoritmo es deliberadamente simple y determinista — no hay pesos, no hay sumas, solo una división y una búsqueda. Pero detecta errores de forma efectiva: cambiar cualquier dígito del cuerpo cambia el resto, y 22 de cada 23 veces cambia la letra esperada. Transponer dos dígitos adyacentes también cambia el resto en la mayoría de los casos.

Lo que ninguna herramienta puede confirmar desde fuera es si el DNI o NIE ha sido emitido por la DGP (Dirección General de la Policía). Un número estructuralmente válido puede estar sin asignar o caducado. Usa este validador como el primer filtro masivo para limpiar datos, y los canales oficiales para la verificación final. Todo corre en tu navegador — los números que pegues no se envían a ningún lado.

Estructura del DNI y del NIE

TipoFormatoEjemploAlgoritmo
DNI (ciudadanos españoles)8 dígitos + 1 letra12345678Znúmero mod 23 → búsqueda en tabla
NIE (residentes extranjeros, serie X)X + 7 dígitos + 1 letraX1234567LReemplazar X por 0, luego mod 23
NIE (serie Y)Y + 7 dígitos + 1 letraY1234567XReemplazar Y por 1, luego mod 23
NIE (serie Z)Z + 7 dígitos + 1 letraZ1234567RReemplazar Z por 2, luego mod 23

La serie X fue la primera serie del NIE y cubre la mayoría de los NIE existentes. La serie Y comenzó cuando se agotó la X. La serie Z está reservada para uso futuro. La letra de control siempre es una de 23 letras posibles — la I, la Ñ, la O y la U están excluidas de la tabla deliberadamente para evitar confusión visual con 1, Ñ, 0 y V.

La letra de control módulo 23, paso a paso

La letra de control es el más simple de todos los algoritmos de documentos de identidad: se divide el número entre 23, se toma el resto (de 0 a 22) y se busca en esta tabla:

Resto → Letra
 0  T     6  Y    12  N    18  H
 1  R     7  F    13  J    19  L
 2  W     8  P    14  Z    20  C
 3  A     9  D    15  S    21  K
 4  G    10  X    16  Q    22  E
 5  M    11  B    17  V
La tabla completa. Las letras I, Ñ, O y U están deliberadamente excluidas.
DNI: 12345678
12345678 mod 23 = 14  →  tabla[14] = Z
→ 12345678Z

NIE: X1234567
Reemplazar X → 0  →  01234567 = 1234567
1234567 mod 23 = 19  →  tabla[19] = L
→ X1234567L
Ejemplos para un DNI y un NIE.

Validar DNI/NIE en Excel, Google Sheets y SQL

Para comprobar rápidamente una columna de DNI por errores de formato, estas fórmulas atrapan lo que no coincide con el patrón esperado. La letra módulo 23 en sí requiere una fórmula de búsqueda o código.

Google Sheets (A2 = DNI/NIE):
DNI: =REGEXMATCH(A2; "^[0-9]{8}[A-Z]$")
NIE: =REGEXMATCH(A2; "^[XYZ][0-9]{7}[A-Z]$")
Ambos: =REGEXMATCH(A2; "^([0-9]{8}|[XYZ][0-9]{7})[A-Z]$")

Excel 365:
=REGEXTEST(A2, "^([0-9]{8}|[XYZ][0-9]{7})[A-Z]$")
Verificación de formato — atrapa longitudes incorrectas y caracteres no alfanuméricos, pero no verifica la letra módulo 23.
-- PostgreSQL: encontrar DNI/NIE con formato inválido
SELECT dni FROM personas
WHERE dni !~ '^([0-9]{8}|[XYZ][0-9]{7})[A-Z]$';

-- MySQL 8
SELECT dni FROM personas
WHERE dni NOT REGEXP '^([0-9]{8}|[XYZ][0-9]{7})[A-Z]$';
Consultas SQL para encontrar DNI/NIE con formato inválido. La letra módulo 23 requiere código o una función almacenada — valídalo aquí en lote.

Preguntas frecuentes

¿Este validador confirma que el DNI está emitido?

No, y ninguna herramienta externa puede hacerlo. Aquí se valida el formato y la letra de control módulo 23 — suficiente para detectar errores de tecleo. Para confirmar que un DNI o NIE ha sido emitido, se necesitan los canales oficiales (DGP / policía). Lo eficiente es limpiar primero en lote con este validador y verificar oficialmente solo lo que pasó el filtro.

¿Cuál es la diferencia entre DNI y NIE?

El DNI es para ciudadanos españoles (8 dígitos + letra). El NIE es para residentes extranjeros y empieza con X, Y o Z seguida de 7 dígitos y una letra. Ambos usan exactamente el mismo algoritmo módulo 23 para la letra de control — el NIE simplemente reemplaza su letra inicial por 0, 1 o 2 antes de calcular.

¿Es seguro pegar DNI y NIE reales?

Sí. La validación corre completamente en tu navegador con JavaScript: los números nunca se envían a ningún servidor, no hay cuentas ni registro, y puedes comprobarlo desconectando el internet después de cargar la página — la herramienta sigue funcionando.

Herramientas relacionadas