👋

国内電話番号をparseするライブラリを作りました

2022/01/25に公開

国内電話番号をparseするライブラリを作成しました。
https://github.com/chorkaichan/jp-phone-parser

完全な電話番号(09012345678など)を入力するとハイフン付きで返却してくれるライブラリはいくつか見つけたのですが、フォーム入力途中の文字列(0901など)もいい感じにハイフン付きの文字列に変換したいと思い、作りました。

以下、READMEコピペですが使用イメージです。

// 03-* (Tokyo)
console.log(phoneParser('0')) // '0'
console.log(phoneParser('03')) // '03'
console.log(phoneParser('031')) // '03-1'
console.log(phoneParser('0312345')) // '03-1234-5'
console.log(phoneParser('0312345678')) // '03-1234-5678'

// 05979-* (Kumano, Mie)
console.log(phoneParser('05979')) // '05979'
console.log(phoneParser('059792')) // '05979-2'
console.log(phoneParser('0597921')) // '05979-2-1'
console.log(phoneParser('0597921234')) // '05979-2-1234'

// 090-* (mobile)
console.log(phoneParser('0901')) // '090-1'
console.log(phoneParser('09010012')) // '090-1001-2'
console.log(phoneParser('09010012345')) // '090-1001-2345'

// 0200-* (for data transmission)
console.log(phoneParser('02001')) // '0200-1'
console.log(phoneParser('02001000012345')) // '0200-10000-12345'

// change delimiter
console.log(phoneParser('0312345678', ' ')) // '03 1234 5678'

// type-safe
console.log(phoneParser('')) // ''
console.log(phoneParser(null)) // ''
console.log(phoneParser(undefined)) // ''
console.log(phoneParser(123456)) // ''

総務省のページにて配布されているExcelからデータを抜き出す形でテストを実施しており、すべての存在する電話番号を適切にparseできることを確認しています。

もし誤りを発見した際には、PR・コメントなど何らかの形でお知らせいただけると幸いです。

Discussion