概要
- 分割されていない電話番号から、市内局番や市外局番を求めたい。
- 0292323011 => 029-232-3011
- phonelibが良さそう。
- phonelibはGoogle libphonenumberのデータをもとにしている。
- 日本の市外局番マスタはPDFで提供されていて辛い。。。。
- https://www.soumu.go.jp/main_content/000141817.pdf
- Google libphonenumberはこの内容もちゃんとアップデートされている模様。
- これの悲しいのは、桁数で明確に市内局番が別れていないことです。市内局番が例えば、137と1377が存在します。なので、最長一致でマッチングする必要があります。

実装
irb> require 'phonelib'
irb> Phonelib.default_country = "JP"
irb> Phonelib.parse('0292323011').national.split('-')
=> ["029", "232", "3011"]
irb> Phonelib.parse('0292323011').area_code
=> "29"


Comments