1.0.12 • Published 2 years ago

phonumber v1.0.12

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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:

PropertyTypeDescription
firstInputCharsObject (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.
resolveAsObject (required)Data whitch detect how resolve first input char.

firstInputChars property

PropertyTypeDescription
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

PropertyTypeDescription
firstCharstring (required)The first digit of the country code
codestring (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:

PropertyTypeDescription
maskstringMask for the entered number without a dial code. The dial code will be filled automatically.
withTailbooleanAdd 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',
}

*/
1.0.12

2 years ago

1.0.10

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago