niho / personal-number / PersonalNumber.Swedish

Parse Swedish personal numbers. Supports both ordinary "personnummer" and "sammordningsnummer" assigned to foreign temporary visitors.

Definition


type PersonalNumber

An opaque type representing a valid personal number.

isPNR : PersonalNumber -> Basics.Bool

Check if the personal number is a "personnummer".

isSAM : PersonalNumber -> Basics.Bool

Check if the personal number is a "sammordningsnummer".

Errors


type ValidationError
    = InvalidFormat
    | InvalidLength
    | InvalidDate
    | InvalidChecksum

If the parsing fails an error of this type is returned.

Strings

fromString : String -> Result ValidationError PersonalNumber

Parse a string into a personal number.

toString : PersonalNumber -> String

Converts a personal number to string representation in the long format that is commonly used for database storage (YYYYMMDDXXXX).

display : PersonalNumber -> String

Format a personal number into a user readable string (YYYYMMDD-XXXX).

JSON

decoder : Json.Decode.Decoder PersonalNumber

Decode a personal number.

encode : PersonalNumber -> Json.Encode.Value

Encode a personal number into a JSON value.