UNPKG

phonumber

Version:

Phone number parser. Good for formatting phone numbers entered by users.

144 lines (104 loc) 2.79 kB
# Phonumber Phonumber - it is phone number parser. Good for formatting phone numbers entered by users. ## Installation ```bash npm i phonumber ``` ## Usage ```javascript 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.<br /> **"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, ...) | ```javascript 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. | ```javascript 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', } */