jptel は日本の電話番号を市外局番・市内局番・加入者番号に分割して返します。
This package is utility for japaneses telephone number.
$ go get github.com/zenwerk/jptel
package main
import (
"fmt"
"github.com/zenwerk/jptel"
)
func main() {
result, err := jptel.Split("0312345678")
if err != nil {
panic(err)
}
fmt.Println(result.AreaCode) // 03
fmt.Println(result.CityCode) // 1234
fmt.Println(result.SubscriberCode) // 5678
result, err = jptel.Split("09098765432")
if err != nil {
panic(err)
}
fmt.Println(result.AreaCode) // 090
fmt.Println(result.CityCode) // 9876
fmt.Println(result.SubscriberCode) // 5432
fmt.Println(jptel.Normalize("0123456789")) // 0123-45-6789
fmt.Println(jptel.Normalize("01ー2ー3456789")) // 0123-45-6789
err = jptel.Validate("090-1234-5678") // nil
if err != nil {
panic(err)
}
err = jptel.Validate("0-90-12345678") // error
if err != nil {
panic(err)
}
}固定電話の市外局番データ(master_data.go)は総務省のサイトで
公開されている固定電話番号の指定状況(Excel)から生成しています。
再生成する場合は以下のコマンドを実行して下さい。
$ go generate ./...
総務省がデータを更新するとファイルのURLが変わることがあります。
ダウンロードが 404 エラーになる場合は、上記ページで最新のファイルIDを確認して
internal/gen/main.go の xlsFilenames を更新して下さい。