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.
Taula de funcionalitats
Secció titulada «Taula de funcionalitats»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.
| Biblioteca | Tipus | K/L/M | Normalitza l'entrada | Objecte de resultat | Missatges traduïts | Generadors de dades de prova | Esquemes | Mòduls | Mida, qualsevol tipus (min+gzip) | Última versió | Fonts |
|---|---|---|---|---|---|---|---|---|---|---|---|
| nif-dni-nie-cif-validation aquesta versió | DNI, NIE, CIF, K/L/M | sí | sí | sí: codi, regla de SPEC, missatge | EN, ES, CA, EU, GL | sí | Zod, Valibot, Yup | ESM + CJS | 929 B | aquesta versió | README npm |
| spain-id 1.1.14 | DNI, NIE, CIF | no | parcial | no (només el tipus) | no | no | no | ESM + CJS | 583 B | 2026-06-12 | README npm |
| better-dni 4.4.2 | DNI, NIE | no | normalize() a part | no | no | sí | no | només CJS / UMD | 1.134 B | 2021-05-30 | README npm |
| dni-js 1.0.0 | DNI, NIE | no | parcial | no | no | no | no | només CJS | 882 B | 2026-08-08 | README npm |
| stdnum 1.12.6 | DNI, NIE, CIF, K/L/M i uns 90 països | sí | sí | sí: classe d'error | només anglès | no | no | ESM + CJS | 51.063 B | 2026-08-01 | README npm |
| validator.js isIdentityCard(x, "ES") 13.15.35 | DNI, NIE | no | no | no | no | no | no | ESM (rutes internes) + CJS | 2.539 B | 2026-04-02 | README npm |
| validator.js isTaxID(x, "es-ES") 13.15.35 | DNI, NIE, K/L/M | sí | no | no | no | no | no | ESM (rutes internes) + CJS | 6.537 B | 2026-04-02 | README npm |
| @maistik/validate-nif 2.0.1 | DNI, NIE, CIF | no | parcial | parcial: parse(), sense el motiu | no | no | no | ESM + CJS | 456 B | 2026-06-14 | README npm |
| @kreyo/nif-validator 0.1.0 | DNI, NIE, CIF | opcional | parcial | no | no | no | no | ESM + CJS | 533 B | 2026-04-29 | README npm |
| jsvat 2.5.4 | NIF-IVA de la UE (ES + NIF) | sí | sí | sí: validesa i país | no | no | no | ESM + CJS | 1.186 B | 2024-12-12, obsoleta | README 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.
Quan és millor una altra biblioteca
Secció titulada «Quan és millor una altra biblioteca»- 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.
Què hi afegeix aquesta biblioteca
Secció titulada «Què hi afegeix aquesta biblioteca»- 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.