Pythonで電話番号をハイフン区切りに変換する
電話番号をハイフン区切りにできる便利なライブラリがないか探していたところ、GoogleがGithubで公開しているlibphonenumber
を見つけました!
libphonenumber
は国際電話番号を解析・変換・バリデーションすることができます。
だがしかし!Java
, C++
, JavaScript
の実装しかない…
諦めかけたその時、サードパーティが多言語に移植してくれている一覧を発見!C#
, Go
, Objective-c
, PHP
, PostgreSQL in-database types
, Python
, Ruby
…!!! Python
もありました!
名前は phonenumbers
になってますね。わからいやすいな。
早速こちらのライブラリを試して見ました。
まずはライブラリのインストール
$ pip install phonenumbers
Pythonコンソール起動して実行
$ python >>> import phonenumbers >>> tel = '0300000000' >>> tel_hyphen = phonenumbers.parse(tel, 'JP') >>> phonenumbers.format_number(tel_hyphen, phonenumbers.PhoneNumberFormat.NATIONAL) u'03-0000-0000'
ちゃんとハイフン区切りに変換されました!素晴らしい… 変換する電話番の形式がおかしかったりすると例外投げるので、入力ミスった値が来た時用に例外処理は入れといた方がよさそう。
libphonenumberの解説をしてくれているスライドあったので気になったら見てみよう。