Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@opendevtools/telefonnummer

opendevtools1.6kMIT2.3.3TypeScript support: included

Phone number formatter for Swedish phone numbers

Phone, Number, Parser, Swedish, Telefonnummer, Sverige

readme

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!

changelog

2.3.3 (2024-08-14)

Bug Fixes

2.3.2 (2024-08-14)

Bug Fixes

  • imports matches filenames (ab368c4)

2.3.1 (2023-09-12)

Bug Fixes

  • only include built files in npm publish (95324e0)

2.3.0 (2023-09-12)

Features

  • use bun for tests and bundling (9be493f)

2.2.0 (2020-11-05)

Features

  • publish as @opendevtools/telefonnummer (0ccbcf1)

2.1.1 (2020-11-05)

Bug Fixes

  • publish as @opendevtools/telefonnummer (19ef867)

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[2.0.2] - 2018-12-10

Fixed

  • Handle internationalized numbers with a leading zero, i.e. +46 0700123456

[2.0.1] - 2018-11-27

Fixed

  • Update versions after flatmap-stream incident

[2.0.0] - 2018-05-09

Added

  • Internationalization option
  • Rollup build

Fixed

  • Fixed potential null problems
  • Updated some types

Breaking changes

  • Second parameter to parse has been changed to an options object