Comprehensive Guide to libphonenumber-js for Phone Number Validation and Formatting

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

Leave a Reply

Your email address will not be published. Required fields are marked *