分割されていない電話番号から市外局番と市内局番の求め方

Ruby

概要

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

コメント