Saltar al contingut

Comparació amb altres biblioteques

Diverses biblioteques d’npm validen identificadors espanyols. Es diferencien en quins documents cobreixen, com tracten el que escriuen els usuaris i què us diuen quan un número no és vàlid. Aquesta pàgina en compara les funcionalitats; la de rendiment en compara la velocitat, la mida i la concordança amb SPEC.md.

Revisat el 1 d’octubre del 2026 amb el README, el package.json i la pàgina d'npm de cada biblioteca. Les versions i les mides surten dels resultats del benchmark.

Funcionalitats de les biblioteques d'identificadors espanyols a npm, amb les fonts amb què s'ha revisat cada fila
BibliotecaTipusK/L/MNormalitza l'entradaObjecte de resultatMissatges traduïtsGeneradors de dades de provaEsquemesMòdulsMida, qualsevol tipus (min+gzip)Última versióFonts
nif-dni-nie-cif-validation aquesta versióDNI, NIE, CIF, K/L/Msísísí: codi, regla de SPEC, missatgeEN, ES, CA, EU, GLsíZod, Valibot, YupESM + CJS929 Baquesta versióREADME npm
spain-id 1.1.14DNI, NIE, CIFnoparcialno (només el tipus)nononoESM + CJS583 B2026-06-12README npm
better-dni 4.4.2DNI, NIEnonormalize() a partnonosínonomés CJS / UMD1.134 B2021-05-30README npm
dni-js 1.0.0DNI, NIEnoparcialnononononomés CJS882 B2026-08-08README npm
stdnum 1.12.6DNI, NIE, CIF, K/L/M i uns 90 païsossísísí: classe d'errornomés anglèsnonoESM + CJS51.063 B2026-08-01README npm
validator.js isIdentityCard(x, "ES") 13.15.35DNI, NIEnonononononoESM (rutes internes) + CJS2.539 B2026-04-02README npm
validator.js isTaxID(x, "es-ES") 13.15.35DNI, NIE, K/L/MsínononononoESM (rutes internes) + CJS6.537 B2026-04-02README npm
@maistik/validate-nif 2.0.1DNI, NIE, CIFnoparcialparcial: parse(), sense el motiunononoESM + CJS456 B2026-06-14README npm
@kreyo/nif-validator 0.1.0DNI, NIE, CIFopcionalparcialnonononoESM + CJS533 B2026-04-29README npm
jsvat 2.5.4NIF-IVA de la UE (ES + NIF)sísísí: validesa i paísnononoESM + CJS1.186 B2024-12-12, obsoletaREADME npm

Què volen dir les columnes:

  • Tipus: els documents que valida la biblioteca. Els NIF K/L/M són de persones sense DNI ni NIE (KLM-1).
  • Normalitza l’entrada: si accepta el que escriuen els usuaris (minúscules, espais, punts, guions) sense un pas a part. «Parcial» vol dir que n’accepta una part.
  • Objecte de resultat: si us pot dir alguna cosa més que sí o no, com el tipus o el motiu.
  • Mida: un validador de qualsevol tipus, minificat i comprimit amb gzip, segons la mesura del benchmark.
  • Fonts: el README i la pàgina d’npm de cada biblioteca, amb els quals s’ha revisat cada fila en la data indicada a dalt.
  • Molts països: stdnum. stdnum, la versió en JavaScript de python-stdnum, valida identificadors d’uns 90 països amb una sola API, inclosos tots els tipus espanyols. Si necessiteu diversos països, és una bona elecció. Aquesta biblioteca només cobreix Espanya, i hi aprofundeix més.
  • El bundle més petit: spain-id o @maistik/validate-nif. Per a un sol validador, spain-id i @maistik/validate-nif ocupen menys que aquesta biblioteca: consulteu les mides. No accepten els NIF K/L/M ni la forma antiga del NIE, i no diuen per què un número no és vàlid, de manera que gasten menys bytes. Si cada byte compta i no necessiteu res d’això, són bones opcions.
  • Molts tipus de cadenes: validator.js. Si ja feu servir validator.js per a adreces electròniques i URL, les seves dues funcions espanyoles us poden bastar per a DNI i NIE. No valida el CIF.
  • Tots els tipus, inclosos els NIF K/L/M i el NIE antic de 10 caràcters, i les regles de control oficials del CIF (CIF-3).
  • Fonts per a cada regla: cadascuna té un identificador i una cita a SPEC.md, i cada error indica la regla que no es compleix.
  • El motiu, com un codi d’error, una regla de SPEC i un missatge en anglès, castellà, català, basc o gallec.
  • Normalització i la forma canònica que cal desar, generadors de dades de prova i esquemes de Zod, Valibot i Yup.

Quan les biblioteques discrepen de SPEC.md, la pàgina de rendiment compta les discrepàncies de cadascuna i indica quines es deuen a una decisió que SPEC.md documenta.