Ir ao contido

Comparación con outras bibliotecas

Varias bibliotecas de npm validan identificadores españois. Diferéncianse en que documentos cobren, como tratan o que escriben as persoas usuarias e que lle din cando un número non é válido. Esta páxina compara as súas funcionalidades; a de rendemento compara a súa velocidade, o seu tamaño e a súa concordancia con SPEC.md.

Revisado o 1 de outubro de 2026 co README, o package.json e a páxina de npm de cada biblioteca. As versións e os tamaños saen dos resultados do benchmark.

Funcionalidades das bibliotecas de identificadores españois en npm, coas fontes coas que se revisou cada fila
BibliotecaTiposK/L/MNormaliza a entradaObxecto de resultadoMensaxes traducidasXeradores de datos de probaEsquemasMódulosTamaño, calquera tipo (min+gzip)Última versiónFontes
nif-dni-nie-cif-validation esta compilaciónDNI, NIE, CIF, K/L/Msisisi: código, regra de SPEC, mensaxeEN, ES, CA, EU, GLsiZod, Valibot, YupESM + CJS929 Besta versiónREADME npm
spain-id 1.1.14DNI, NIE, CIFnonparcialnon (só o tipo)nonnonnonESM + CJS583 B2026-06-12README npm
better-dni 4.4.2DNI, NIEnonnormalize() á partenonnonsinonsó CJS / UMD1.134 B2021-05-30README npm
dni-js 1.0.0DNI, NIEnonparcialnonnonnonnonsó CJS882 B2026-08-08README npm
stdnum 1.12.6DNI, NIE, CIF, K/L/M e uns 90 paísessisisi: clase de errosó inglésnonnonESM + CJS51.063 B2026-08-01README npm
validator.js isIdentityCard(x, "ES") 13.15.35DNI, NIEnonnonnonnonnonnonESM (rutas internas) + CJS2.539 B2026-04-02README npm
validator.js isTaxID(x, "es-ES") 13.15.35DNI, NIE, K/L/MsinonnonnonnonnonESM (rutas internas) + CJS6.537 B2026-04-02README npm
@maistik/validate-nif 2.0.1DNI, NIE, CIFnonparcialparcial: parse(), sen o motivononnonnonESM + CJS456 B2026-06-14README npm
@kreyo/nif-validator 0.1.0DNI, NIE, CIFopcionalparcialnonnonnonnonESM + CJS533 B2026-04-29README npm
jsvat 2.5.4NIF-IVE da UE (ES + NIF)sisisi: validez e paísnonnonnonESM + CJS1.186 B2024-12-12, obsoletaREADME npm

Que significan as columnas:

  • Tipos: os documentos que valida a biblioteca. Os NIF K/L/M son de persoas sen DNI nin NIE (KLM-1).
  • Normaliza a entrada: se acepta o que escriben as persoas usuarias (minúsculas, espazos, puntos, guións) sen un paso á parte. «Parcial» significa que acepta parte disto.
  • Obxecto de resultado: se pode dicirlle algo máis que si ou non, como o tipo ou o motivo.
  • Tamaño: un validador de calquera tipo, minificado e comprimido con gzip, segundo a medición do benchmark.
  • Fontes: o README e a páxina de npm de cada biblioteca, cos que se revisou cada fila na data indicada arriba.
  • Moitos países: stdnum. stdnum, a versión en JavaScript de python-stdnum, valida identificadores duns 90 países cunha soa API, incluídos todos os tipos españois. Se necesita varios países, é unha boa elección. Esta biblioteca só cobre España, e aí profunda máis.
  • O bundle máis pequeno: spain-id ou @maistik/validate-nif. Para un só validador, spain-id e @maistik/validate-nif ocupan menos ca esta biblioteca: consulte os tamaños. Non aceptan os NIF K/L/M nin a forma antiga do NIE, e non din por que un número non é válido, así que gastan menos bytes. Se cada byte conta e non necesita nada diso, son boas opcións.
  • Moitos tipos de cadeas: validator.js. Se xa usa validator.js para enderezos electrónicos e URL, as súas dúas funcións españolas poden bastarlle para DNI e NIE. Non valida o CIF.
  • Todos os tipos, incluídos os NIF K/L/M e o NIE antigo de 10 caracteres, e as regras de control oficiais do CIF (CIF-3).
  • Fontes para cada regra: cada unha ten un identificador e unha cita en SPEC.md, e cada erro indica a regra que non se cumpre.
  • O motivo, como un código de erro, unha regra de SPEC e unha mensaxe en inglés, castelán, catalán, éuscaro ou galego.
  • Normalización e a forma canónica que hai que gardar, xeradores de datos de proba e esquemas de Zod, Valibot e Yup.

Cando as bibliotecas discrepan de SPEC.md, a páxina de rendemento conta as discrepancias de cada unha e indica cales se deben a unha decisión que SPEC.md documenta.