Primeiros pasos
nif-dni-nie-cif-validation comproba identificadores fiscais españois (NIF, DNI, NIF K/L/M, NIE e CIF) segundo as regras oficiais, e indícalle por que un número non é válido. Non ten dependencias, inclúe os seus propios tipos de TypeScript e funciona con import e con require en Node.js 20 ou posterior, en todos os navegadores actuais, en Deno e en Bun.
Instalación
Sección titulada «Instalación»npm install nif-dni-nie-cif-validationpnpm add nif-dni-nie-cif-validationyarn add nif-dni-nie-cif-validationbun add nif-dni-nie-cif-validationdeno add npm:nif-dni-nie-cif-validationPara validar desde un terminal ou un script de shell, sen escribir código, execute npx nif-dni-nie-cif-validation validate 12345678Z: a guía Liña de comandos ten todos os comandos e opcións.
Comprobe un número
Sección titulada «Comprobe un número»As funcións isValid… responden si ou non. Aceptan calquera valor e nunca lanzan excepcións, así que pode pasarlles o que escribise a persoa usuaria:
import { isValidNif } from "nif-dni-nie-cif-validation";
isValidNif("12345678Z"); // true: un DNIisValidNif("X1234567L"); // true: un NIEisValidNif("B12345674"); // true: un CIFisValidNif(" 12.345.678-z "); // true: admítense espazos, puntos, guións e minúsculasisValidNif("12345678A"); // false: a letra de control non é correctaisValidNif(null); // false: nunca lanza excepciónsCon CommonJS, require funciona igual:
const { isValidNif } = require("nif-dni-nie-cif-validation");
isValidNif("12345678Z"); // trueEscolla a función axeitada
Sección titulada «Escolla a función axeitada»isValidNif acepta todos os tipos. Se un campo só admite algúns, use a función máis específica:
| O campo admite… | Use |
|---|---|
| Calquera NIF: DNI, NIF K/L/M, NIE ou CIF | isValidNif(value) |
| Só persoas físicas: DNI, NIF K/L/M ou NIE | isValidNaturalPersonNif(value) |
| Un DNI (ou un NIF K/L/M) | isValidDni(value) |
| Un NIE | isValidNie(value) |
| Empresas e outras entidades (CIF) | isValidCif(value) |
Un NIF-IVE español (ES + NIF, só o formato) |
isValidSpanishVat(value) |
import { isValidCif, isValidNaturalPersonNif } from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif("X1234567L"); // trueisValidNaturalPersonNif("B12345674"); // false: un CIF non é unha persoa físicaisValidCif("P2807900B"); // true: Concello de MadridNon ten claro que documento é cada un? Consulte DNI, NIE, NIF e CIF.
Descubra por que e garde a forma canónica
Sección titulada «Descubra por que e garde a forma canónica»validate() devolve o tipo, a forma canónica que debe gardar e, se o valor non é válido, un erro cun código, a regra de SPEC.md que non se cumpre, unha mensaxe e o carácter de control esperado:
import { validate } from "nif-dni-nie-cif-validation";
validate(" 12.345.678-z ");// { valid: true, type: "DNI", normalized: "12345678Z" }
validate("12345678A").error;// { code: "INVALID_CONTROL_CHARACTER", rule: "DNI-2", expected: "Z",// message: 'The control character is not correct: for this DNI it should be "Z".' }Garde normalized, non o que escribiu a persoa usuaria: está en maiúsculas, sen separadores, e é igual para todas as maneiras de escribir o mesmo documento.
Mostre a mensaxe no idioma da persoa usuaria
Sección titulada «Mostre a mensaxe no idioma da persoa usuaria»As mensaxes están en inglés de forma predeterminada. O castelán, o catalán, o éuscaro e o galego impórtanse por separado, así que o seu bundle só inclúe os idiomas que use:
import { validate } from "nif-dni-nie-cif-validation";import { es } from "nif-dni-nie-cif-validation/locales/es";
validate("12345678A", { locale: es }).error?.message;// "El carácter de control no es correcto: para este DNI debería ser «Z»."