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');
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,
});
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,
});