Introduction to libphonenumber-js
libphonenumber-js
is a JavaScript library for phone number validation, formatting, and parsing. It provides a comprehensive set of API methods that are essential for working with phone numbers in web and mobile applications. This guide will introduce you to the library and showcase a variety of useful APIs with code snippets.
Installation
To install libphonenumber-js
, you can use npm or yarn:
npm install libphonenumber-js
// or
yarn add libphonenumber-js
Basic Usage
Here’s a simple example of how to parse and format a phone number:
import { parsePhoneNumberFromString } from 'libphonenumber-js'
const phoneNumber = parsePhoneNumberFromString('+12133734253')
if (phoneNumber) {
console.log(phoneNumber.formatInternational()) // +1 213 373 4253
console.log(phoneNumber.formatNational()) // (213) 373-4253
}
API Methods
Let’s dive into some useful API methods provided by libphonenumber-js
:
parsePhoneNumberFromString
Parses a phone number and returns a PhoneNumber
object:
const phoneNumber = parsePhoneNumberFromString('+12133734253')
console.log(phoneNumber.country) // US
console.log(phoneNumber.isValid()) // true
isValidNumber
Validates the phone number:
import { isValidNumber } from 'libphonenumber-js'
console.log(isValidNumber('2133734253', 'US')) // true
findPhoneNumbersInText
Finds phone numbers in a given text:
import { findPhoneNumbersInText } from 'libphonenumber-js'
const numbers = findPhoneNumbersInText('Call me at +12133734253 or +442071838750')
for (const number of numbers) {
console.log(number.number) // +12133734253 and +442071838750
}
getNumberType
Gets the type of the phone number:
import { getNumberType } from 'libphonenumber-js'
const phoneNumber = parsePhoneNumberFromString('+12133734253')
console.log(getNumberType(phoneNumber)) // 'MOBILE'
Examples of a Complete App
Let’s create a small app that utilizes the above APIs to validate and format user-input phone numbers.
import React, { useState } from 'react'
import { parsePhoneNumberFromString, isValidNumber } from 'libphonenumber-js'
function PhoneNumberApp() {
const [phoneNumber, setPhoneNumber] = useState('')
const [formattedNumber, setFormattedNumber] = useState('')
const handleChange = (event) => {
const input = event.target.value
setPhoneNumber(input)
if (isValidNumber(input, 'US')) {
const phoneNumberObj = parsePhoneNumberFromString(input, 'US')
setFormattedNumber(phoneNumberObj.formatInternational())
} else {
setFormattedNumber('Invalid number')
}
}
return (
Phone Number Validator and Formatter
{formattedNumber}
)
}
export default PhoneNumberApp
Hash: fa240cb5281f7bc7b60d8a5f73039c4b75af739ab8ac9c7f98de7df65a0fd8af