Phone number formatter and validator for Swedish phone numbers
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib chore: update areaCodeDigitCount type May 9, 2018
.all-contributorsrc
.codeclimate.yml
.gitignore chore: update areaCodeDigitCount type May 9, 2018
.npmignore chore: update areaCodeDigitCount type May 9, 2018
.prettierignore chore: add prettierignore Mar 16, 2018
.travis.yml
CHANGELOG.md
LICENSE
README.md
commitlint.config.js
package-lock.json chore(deps): update dependency rollup-plugin-uglify to v6 (#137) Sep 20, 2018
package.json chore(deps): update dependency rollup-plugin-uglify to v6 (#137) Sep 20, 2018
renovate.json
rollup.config.js
tsconfig.json chore(deps): update dependency rollup-plugin-uglify to v4 (#36) May 31, 2018
tslint.json feat: add internationalization May 9, 2018

README.md

Telefonnummer

npm version Build Status Code Climate Test Coverage Known Vulnerabilities

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 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 '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 '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 'telefonnummer'

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

Validator

validator(phoneNumber: string): boolean

Validates both mobile and landline numbers.

Example

import { validator } from 'telefonnummer'

validator('0977-123 45') // true
validator('081234567') // true
validator('050012123456') // false

Area codes

areaCodes(): string[]

Returns a number sorted array of all the area codes.

Example

import { areaCodes } from '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 '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 '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!