Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/utils / src / formatPhoneNumber.ts
Size: Mime:
import { isString, isNumber } from 'exotic'

const regexParensFormat1 = /^([1-9]..)([0-9]..)([0-9]{1,})$/
const regexParensFormat2 = /^([1-9]..)([0-9]{1,3})/

function formatPhoneNumber(phoneNumber: string | number) {
  if (isNumber(phoneNumber)) {
    console.warn('phone number given is a number, no need to format?')
    phoneNumber = String(phoneNumber)
  }
  if (isString(phoneNumber)) {
    let formattedPhoneNumber = phoneNumber.replace(/[^0-9]/g, '').slice(0, 10)

    if (regexParensFormat1.test(formattedPhoneNumber)) {
      formattedPhoneNumber = formattedPhoneNumber.replace(
        regexParensFormat1,
        '$1 - $2 - $3'
      )
    } else if (regexParensFormat2.test(formattedPhoneNumber)) {
      formattedPhoneNumber = formattedPhoneNumber.replace(
        regexParensFormat2,
        '$1 - $2'
      )
    }
    return formattedPhoneNumber
  }
  return phoneNumber
}

function removePhoneNumberFormatting(phoneNumber: number | string) {
  if (isString(phoneNumber)) {
    return phoneNumber.replace(/[^0-9]/g, '')
  }
  return phoneNumber
}

export { formatPhoneNumber, removePhoneNumberFormatting }