概要
- 分割されていない電話番号から、市内局番や市外局番を求めたい。
- 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