Migrar desde better-dni
better-dni valida DNI y NIE, y los genera. Esta librería cubre lo mismo y añade el CIF y los NIF K/L/M, la normalización, el motivo de cada error y mensajes traducidos. La comparación de esta página es con better-dni 4.4.2.
Equivalencia de funciones
Sección titulada «Equivalencia de funciones»| better-dni | nif-dni-nie-cif-validation | Notas |
|---|---|---|
isValid(x) |
isValidNaturalPersonNif(x) |
También acepta los NIF K/L/M y la forma antigua del NIE. isValidNif(x) acepta además un CIF |
isNIF(x) |
isValidDni(x) |
También acepta los NIF K/L/M. validate(x, { types: ["DNI"] }) para aceptar solo un DNI |
isNIE(x) |
isValidNie(x) |
|
ctrlChar(x) |
computeControlCharacter(x) |
Pasa el número sin su carácter de control |
randomNIF(), randomNIE() |
generateDni(), generateNie() |
De nif-dni-nie-cif-validation/generate; { seed } para valores fijos |
randomNIFWith(letter), randomNIEWith(prefix, letter) |
Sin equivalente | Usa generateNie({ prefix }); la letra de control se deriva de los dígitos |
normalize(x) |
normalize(x) |
Los validadores ya normalizan: no hace falta llamarla antes |
Antes y después
Sección titulada «Antes y después»Antes, con better-dni:
import { ctrlChar, isNIE, isNIF, isValid, normalize } from "better-dni";
isValid("12345678Z"); // trueisNIF("12345678Z"); // trueisNIE("X1234567L"); // truectrlChar("12345678"); // "Z"isValid(normalize("12345678-z")); // true: primero hay que normalizarDespués:
import { computeControlCharacter, isValidDni, isValidNaturalPersonNif, isValidNie,} from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif("12345678Z"); // trueisValidDni("12345678Z"); // trueisValidNie("X1234567L"); // truecomputeControlCharacter("12345678"); // "Z"isValidNaturalPersonNif("12345678-z"); // true: sin paso previo de normalizaciónPara generar números, antes:
import { randomNIE, randomNIF } from "better-dni";
randomNIF(); // un DNI aleatoriorandomNIE(); // un NIE aleatorioDespués:
import { createGenerator, generateDni, generateNie } from "nif-dni-nie-cif-validation/generate";
generateDni(); // un DNI aleatoriogenerateNie(); // un NIE aleatoriogenerateDni({ seed: 1 }); // "62707394X": el mismo en cada ejecucióncreateGenerator(42).nie(); // "Y4482905N": una secuencia de valores con semillaDiferencias de comportamiento
Sección titulada «Diferencias de comportamiento»NIF K/L/M. better-dni los rechaza. Son NIF de personas físicas (españoles sin DNI, personas extranjeras sin NIE), y esta librería los acepta en isValidDni e isValidNaturalPersonNif (KLM-1).
La forma antigua del NIE. better-dni rechaza los NIE de 10 caracteres, como X01234567L; siguen siendo válidos (NIE-3).
Separadores. better-dni acepta minúsculas, pero rechaza espacios, puntos y guiones salvo que antes llames a su normalize(). Aquí todos los validadores normalizan, y normalize() también quita los puntos y añade los ceros iniciales de un DNI corto.
import { isValid, normalize } from "better-dni";
isValid("K1234567L"); // falseisValid("X01234567L"); // falseisValid(" 12345678Z"); // falsenormalize(" 12.345.678-z "); // "12.345.678Z": se mantienen los puntosimport { isValidNaturalPersonNif, normalize } from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif("K1234567L"); // trueisValidNaturalPersonNif("X01234567L"); // trueisValidNaturalPersonNif(" 12345678Z"); // truenormalize(" 12.345.678-z "); // "12345678Z"CIF. better-dni no tiene validador de CIF. Usa isValidCif(), o isValidNif() para aceptar todos los tipos.
El motivo. better-dni responde sí o no. validate() también da el tipo, la forma canónica y, si el valor no es válido, el código de error, la regla de SPEC y un mensaje en cinco idiomas: consulta Códigos de error y mensajes traducidos.