phonumber
TypeScript icon, indicating that this package has built-in type declarations

1.0.12 • Public • Published

Phonumber

Phonumber - it is phone number parser. Good for formatting phone numbers entered by users.

Installation

npm i phonumber

Usage

import { parsePhoneNumber } from 'phonumber';

const result = parsePhoneNumber('12089999999');

/*

result = {
  code: 'US',
  dialCode: '+1',
  nationalNumber: '2089999999',
  formattedNumber: '+1 2089999999',
}

*/

Config

Resolvers

You can tell the parser how to resolve the value passed to it.

resolvers - it is an array contains objects with the following properties:

Property Type Description
firstInputChars Object (required) It is an object where keys are first input char sended to parser and values are object which contains resolver options for this char.
resolveAs Object (required) Data whitch detect how resolve first input char.

firstInputChars property

Property Type Description
mode "add" | "replace" (required) "Replace" mode replaces first input char with the dial code.
"Add" mode puts the dial code before this first input char. The dial code is determined based on data from "resolveAs".

resolveAs

Property Type Description
firstChar string (required) The first digit of the country code
code string (required) Country code (US, RU, ...)
const resolvers = [
  {
    firstInputChars: {
      9: {
        mode: 'add',
      },
      8: {
        mode: 'replace',
      },
    },
    resolveAs: {
      firstChar: 7,
      code: 'RU',
    },
  },
];

const result1 = parsePhoneNumber('89191238899', {
  resolvers,
});

const result2 = parsePhoneNumber('9191238899', {
  resolvers,
});

/*

result1 = {
  code: 'RU',
  dialCode: '+7',
  nationalNumber: '9191238899',
  formattedNumber: '+7 9191238899',
}

result2 = {
  code: 'RU',
  dialCode: '+7',
  nationalNumber: '9191238899',
  formattedNumber: '+7 9191238899',
}

*/

Formats

Formats - it is an object where keys are country codes and values are objects with the following properties:

Property Type Description
mask string Mask for the entered number without a dial code. The dial code will be filled automatically.
withTail boolean Add numbers that are not counted in the mask to the phone number.
const formats = {
    RU: {
      mask: '(###) ### ####',
    },
    BY: {
      mask: '## ### ## ##',
    },
    US: {
      mask: '###-###-####',
      withTail: true,
    },
  };

const result = parsePhoneNumber('12089999999', {
  formats,
});

/*

result = {
  code: 'US',
  dialCode: '+1',
  nationalNumber: '2089999999',
  formattedNumber: '+1 208-999-9999',
}

*/

Package Sidebar

Install

npm i phonumber

Weekly Downloads

31

Version

1.0.12

License

MIT

Unpacked Size

78.9 kB

Total Files

34

Last publish

Collaborators

  • barrsan