Skip to content

Phone number formatter and validator for Swedish phone numbers

License

Notifications You must be signed in to change notification settings

opendevtools/telefonnummer

Repository files navigation

Telefonnummer

npm (scoped)

Telefonnummer is phone number in Swedish. This package formats all Swedish phone numbers, both mobile and landline, to a standard format. Area code information is provided by Post- och telestyrelsen (PTS).

Installation

npm install @opendevtools/telefonnummer --save

Parse

parse(phoneNumber: string, options?: ParserOptions ): string

Take a phone number and return a parsed version of the number. Parser is also default export of package, but might be removed as default in the future.

Example

import { parse } from '@opendevtools/telefonnummer'

parse('222') // Röstbrevlåda (Voicemail in Swedish)
parse('0701234567') // 070-123 45 67
parse('468123456') // 08-12 34 56
parse('031626262') // 031-62 62 62
parse('050012345') // 0500-123 45

// With custom separator
parse('0701234567', { separator: ':' }) // 070:123 45 67

// Internationalized
parse('0701234567', { internationalized: true }) // +46701234567

Parser options

Property Type Default Description
separator string '-' Separator between area code and phone number
internationalized boolean false If true returns on the format +46xxxxxxxxxx

Area code

areaCode(area: string): string

Returns the area code of the provided city

Example

import { areaCode } from '@opendevtools/telefonnummer'

areaCode('Stockholm') // 08
areaCode('Korpilombolo') // 0977

Numbering area

numberingArea(areaCode: string | number): string

Returns the numbering area for a provided area code or phone number. Also handles numbers without leading zero.

Example

import { numberingArea } from '@opendevtools/telefonnummer'

numberingArea('0977-123 45') // Korpilombolo
numberingArea('081234567') // Stockholm
numberingArea('08') // Stockholm
numberingArea('031') // Göteborg
numberingArea(8) // Stockholm

Validator

interface ValidatorOptions {
  onlyMobile?: boolean
}

validator(phoneNumber: string, options?: ValidatorOptions): boolean

Validates both mobile and landline numbers.

Example

import { validator } from '@opendevtools/telefonnummer'

validator('0977-123 45') // true
validator('081234567') // true
validator('050012123456') // false
validator('0500123456', { onlyMobile: true }) // false
validator('0701234567', { onlyMobile: true }) // true

Area codes

areaCodes(): string[]

Returns a number sorted array of all the area codes.

Example

import { areaCodes } from '@opendevtools/telefonnummer'

areaCodes()
//  [
//    '011 Norrköping',
//    '0120 Åtvidaberg',
//    '0121 Söderköping',
//    ....
//  ]

Normalize

normalize(string): string

Clean up any non-digits and country codes from phone number.

Example

import { normalize } from '@opendevtools/telefonnummer'

normalize('070-123.45x67') // 0701234567
normalize('+46701234567') // 0701234567

AreEqual

areEqual(string, string): boolean

Cleans up provided strings and checks if the two phone number values match.

Example

import { areEqual } from '@opendevtools/telefonnummer'

areEqual('0701234567', '0701234567') // true
areEqual('070-123.45 67', '070123--45 67') // true

Tests

npm test

Contributors

Thanks goes to these wonderful people (emoji key):


Rickard Laurin

🐛 💻 📖 👀

Jimmy Jardland

📖

This project follows the all-contributors specification. Contributions of any kind welcome!