Migrar desde validator.js
validator.js valida moitos tipos de cadeas, e ten dúas funcións para identificadores españois: isIdentityCard(x, "ES") e isTaxID(x, "es-ES"). Se o que necesita son identificadores españois, esta biblioteca compróbaos de forma máis completa e engade o CIF, a normalización e o motivo de cada erro. Tamén pode manter validator.js para todo o demais e usar esta biblioteca só para os NIF. A comparación desta páxina é con validator.js 13.15.35.
Equivalencia de funcións
Sección titulada «Equivalencia de funcións»| validator.js | nif-dni-nie-cif-validation | Notas |
|---|---|---|
isIdentityCard(x, "ES") |
isValidNaturalPersonNif(x) |
validator.js acepta un DNI ou un NIE; esta tamén acepta os NIF K/L/M e a forma antiga do NIE |
isTaxID(x, "es-ES") |
isValidNaturalPersonNif(x) |
validator.js acepta un DNI, un NIF K/L/M ou un NIE; esta tamén acepta a forma antiga do NIE |
| Sen validación de CIF | isValidCif(x), ou isValidNif(x) para todos os tipos |
Antes e despois
Sección titulada «Antes e despois»Antes, con validator.js:
import validator from "validator";
validator.isIdentityCard("12345678Z", "ES"); // truevalidator.isIdentityCard("X1234567L", "ES"); // truevalidator.isTaxID("K1234567L", "es-ES"); // truevalidator.isTaxID("B12345674", "es-ES"); // false: non admite CIFDespois:
import { isValidCif, isValidNaturalPersonNif, isValidNif } from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif("12345678Z"); // trueisValidNaturalPersonNif("X1234567L"); // trueisValidNaturalPersonNif("K1234567L"); // trueisValidCif("B12345674"); // trueisValidNif("B12345674"); // true: calquera tipoCunha biblioteca de formularios, os esquemas para Zod, Valibot e Yup substitúen un refine personalizado que chama a validator.js, e ademais dan a mensaxe.
Diferenzas de comportamento
Sección titulada «Diferenzas de comportamento»Valores que non son cadeas. validator.js lanza un TypeError con calquera cousa que non sexa unha cadea, como null ou un número. Esta biblioteca devolve false, e validate() devolve o código NOT_A_STRING (INPUT-1), así que lle pode pasar o valor dun formulario tal como está.
import validator from "validator";
validator.isIdentityCard(null, "ES"); // throws TypeErrorimport { isValidNaturalPersonNif, validate } from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif(null); // falsevalidate(null).error?.code; // "NOT_A_STRING"Separadores. As dúas bibliotecas aceptan minúsculas. validator.js rexeita espazos, puntos e guións; esta biblioteca elimínaos (NORM-2, NORM-3) e dá a forma canónica que debe gardar.
A forma antiga do NIE. validator.js rexeita os NIE de 10 caracteres, como X01234567L; seguen sendo válidos (NIE-3).
NIF K/L/M. isIdentityCard(x, "ES") rexéitaos, e isTaxID(x, "es-ES") acéptaos. Esta biblioteca acéptaos como NIF de persoas físicas (KLM-1).
import validator from "validator";
validator.isIdentityCard("12.345.678-Z", "ES"); // falsevalidator.isTaxID("X01234567L", "es-ES"); // falsevalidator.isIdentityCard("K1234567L", "ES"); // falseimport { isValidNaturalPersonNif, validate } from "nif-dni-nie-cif-validation";
isValidNaturalPersonNif("12.345.678-Z"); // truevalidate("12.345.678-Z").normalized; // "12345678Z"isValidNaturalPersonNif("X01234567L"); // trueisValidNaturalPersonNif("K1234567L"); // trueTamaño do bundle. Unha función de validator.js inclúe as regras de todos os países que admite, así que isIdentityCard e isTaxID ocupan varias veces o que ocupa isValidNif. A páxina de rendemento ten as cifras medidas.