add validation of Swedish national identity number #33
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Denne PRen følger opp #31, og legger til støtte for validering av svenske personnummer.
Det er inkludert støtte for samordningsnummer, som er omtrent det samme som D-nummer i Norge.
Et svensk personnummer valideres med MOD10/Luhns algoritme. Så det er implementert her. (Brukes også til validere blant annet norske kid-nummer og svenske orgnummer, så dette får vi bruk for andre steder også).
Som vanlig har Sverige flere formater... Ofte brukes 10 siffer i det daglige, mens 12 siffer brukes til for eksempel lagring i svenske skatteverket, se Wikipedia.
Implementasjonen her støtter begge by default, men du kan skru på dette med en option,
formatI tillegg så kan svenske personnummer formateres med en separator, men separatoren har signifikans. Til vanlig benyttes
YYMMDD-XXXX, men dersom personen er over 100 år endres-til en+, altsåYYMMDD+XXXX. Dermed kan man lese av århundre i personnummeret selv om det bare er satt av to siffer til år i 10-siffer versjonen.Dette er interessant, for det gjør at APIet man har brukt på de andre valideringsmetodene kanskje ikke helt passer til denne metoden. Alle metodene har en option,
allowFormatting. Tanken var at den skulle brukes for å strippe vekk diverse forskjellige formatering av feks telefonnummer, eller om et kontonummer har blitt formatert med space eller punktum.For at et personnummer på formatet
YYMMDD-XXXXskal validere må man altså bruke metoden slik:Jeg er ikke helt sikker på hva jeg synes om det. Så tar gjerne innspill. Ønsker vi at vi skal prøve å holde det likt for alle metoder, altså med
allowFormatting?Eller gir det mening at man endrer til feks
allowSeparatorfor personnummer, men beholderallowFormattingfeks på telefonnummer?Her er forøvrig en fin resurss for å generere syntetiske personnummer for alle de fire formatene som vi støtter her 😄 https://fnr.mujaj.dev/