Skip to content

dhershman1/phone-fns

This branch is up to date with master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

26d46ba · Oct 18, 2024
Oct 14, 2024
Aug 17, 2023
Oct 18, 2024
Oct 14, 2024
Oct 15, 2024
Oct 9, 2018
Oct 14, 2024
Jun 11, 2021
Oct 14, 2024
Oct 31, 2017
Oct 14, 2024
Oct 18, 2024
Oct 14, 2024
Nov 18, 2020
Oct 18, 2024
Oct 18, 2024
Aug 17, 2023

Repository files navigation

license:mit Netlify Status Npm Version Build Status codebeat badge

Phone Fns

A small modern, and functional phone number library which gathers inspiration from the fun date-fns library

How-To

npm i phone-fns

Standard module system

import * as phoneFns from 'phone-fns'

phoneFns.uglify('555-444-3333') // => '5554443333'

Common JS

const phoneFns = require('phone-fns')

phoneFns.uglify('555-444-3333') // => '5554443333'

Using Unpkg or jsdelivr CDN (As of v4.0.0+)

<script src="https://cdn.jsdelivr.net/npm/phone-fns@4.0.0/dist/phone-fns.iife.min.js"></script>
<script>
  phoneFns.uglify('555-444-3333') // => '5554443333'
</script>

Through the browser

<script src="path/to/location/dist/phone-fns.iife.min.js"></script>
<script>
  phoneFns.uglify('555-444-3333') // => '5554443333'
</script>

Usage

import * as phoneFns from 'phone-fns'

phoneFns.breakdown('4443332222')
// => { areaCode: '444', localCode: '333', lineNumber: '2222', extension: '' }

phoneFns.format('(NNN) NNN-NNNN', '4443332222')
// => '(444) 333-2222'

You can also destructure to only use the functions you want

import { breakdown, format } from 'phone-fns'

breakdown('4443332222')
// => { areaCode: '444', localCode: '333', lineNumber: '2222', extension: '' }

format('(NNN) NNN-NNNN', '4443332222')
// => '(444) 333-2222'

Placeholder Support

Phone-Fns as of v3.2.0 now supports placeholder syntax using Underscores _

const fn = format('NNN-NNN-NNNN')

fn('__________') // => '___-___-____'
fn('444_______') // => '444-___-____'
fn('444555____') // => '444-555-____'
fn('4445556666') // => '444-555-6666'
format('NNN-NNN-NNNN x NNNN', '5554443333____') // => '555-444-3333 x ____'

This will only work with underscores or other characters not picked up by the Regex \W type.

Just call format as the phone number updates in order to get back the newly updated string. Useful for using it with a input mask setup