Fra Nav · Den stille standarden
fnrvalidator
Ett lite bibliotek. Elleve siffer. Ett svar — gyldig eller ikke, med begrunnelse.
Er de elleve sifrene et ekte fødselsnummer, d-nummer, h-nummer eller et testnummer? fnrvalidator regner ut kontrollsifrene og sjekker datodelen for deg. Under 100 kodelinjer, ingen avhengigheter — og likevel i tusenvis av tjenester hver måned.
Taster du inn et nummer, får du svaret med det samme.
Alt regnes ut i nettleseren din. Ingenting sendes noe sted — siden er statisk og gjør ingen nettverkskall.
Eksemplene er autogenererte. Trenger du flere, hent dem fra Tenor testdata hos Skatteetaten.
Den stille rekkevidden
20 stjerner — og 42 659 nedlastinger i måneden.
Et bibliotek de fleste aldri legger merke til, men som stille sjekker identitetsnumre i søknadsskjemaer og saksbehandlingssystemer over hele landet.
Hva den sjekker
Norske identitetsnumre er elleve siffer med innebygde kontrollsifre og en dato skjult i de seks første. fnrvalidator kjenner igjen fire varianter — og kombinasjonene mellom dem.
- Fødselsnummerfnr
- Det vanlige nummeret. De seks første sifrene er fødselsdato (DDMMÅÅ), de to siste er kontrollsifre.
- D-nummerdnr
- For personer med midlertidig tilknytning til Norge. Første siffer er lagt til 4 — validatoren trekker det fra før datoen sjekkes.
- H-nummerhnr
- Hjelpenummer brukt internt i helsevesenet. Tredje siffer er lagt til 4.
- Testnummertnr
- Syntetiske numre fra Test Norge (Tenor). Tredje siffer er lagt til 8 — slik at et testnummer aldri kolliderer med en ekte person.
I tillegg gjenkjennes kombinasjonene dnr-and-hnr og dnr-and-tnr når sifrene tilsier begge deler. For hvert nummer sjekkes to ting: at kontrollsifrene (mod 11) stemmer, og at de seks første sifrene gir en gyldig dato.
Ta den i bruk
Pakken finnes på npm. Ett kall, ett svar-objekt — ingen oppsett, ingen konfigurasjon.
$ npm install @navikt/fnrvalidatorimport { idnr } from '@navikt/fnrvalidator'
const res = idnr('10915596784')
// { status: 'valid', type: 'tnr' }
// ellers: { status: 'invalid', reasons: [...] }Egne funksjoner finnes også per type — fnr(), dnr(), hnr(), tnr() og dnrAndHnr() — men idnr() kjenner igjen typen selv.
Fritt å gjenbruke
Brukt langt utenfor forvaltningen
fnrvalidator er MIT-lisensiert og har ingen bindinger til Nav-spesifikk infrastruktur. Reglene for norske identitetsnumre er de samme uansett hvem som sjekker dem. Norges domstoler, Vestfold fylkeskommune og Gi Effektivt validerer med den — og DNB har bygd den inn i designsystemet sitt Eufemia, så den følger med på kjøpet der.
Vi lover ingen support-SLA, men issues og pull requests er velkomne. Bruker du det i din tjeneste? Si gjerne fra — det er slik vi ser at det åpne arbeidet virker.