# Javascript 電話番号フォーマット
Javascript で数字の電話番号をハイフォン入れてフォーマットする作業がありましたので、日本の電話番号について調べました。
固定電話の電話番号は==「0-市外局番-市内局番-加入者番号」==の電話番号となっていて 03 06 みたいの二桁から始まるものだけでなく、実際はたくさんの種類があります。
固定電話以外に携帯電話、フリーダイヤル、緊急公共電話番号もあるので、
電話番号とは
通話の相手を識別するために 0 から 9 までの数字組み合わせた番号は電話番号といいます。
電話番号の種類
- 固定電話
- 携帯電話
- フリーダイヤル
- 緊急公共電話番号
# 0XXX から始まる固定電話
基本的固定電話番号
市外通話
固定電話に電話する時に使います。(市外通話)
0XXX から始まる番号(X は 0 以外)
(0-市外局番-市内局番-加入者番号)
固定電話桁数
0プレフィックス市外局番-市内局番合計5桁市外局番1-4 桁市内局番1-4 桁
加入者番号4桁
令和 3 年更新 総務省 市外局番一覧 (opens new window)
市内通話
2 ~ 9 から始まる番号
固定電話に電話する時に使います。(市内通話)
(市内局番-加入者番号)
# 00 から始まる中継経由番号
中継する電話会社を使って電話する時や国際電話をかける時に使います。
# 0X0 から始まる IP 電話番号 携帯番号 PHS 番号
携帯電話と PHS は 070 080 090から始まる 11 桁の番号です。
0X0 から始まる番号(X は 0 以外)
# 0XX0 で始まるフリーダイヤルなど特殊番号
0XX0 で始まる番号は、特殊なサービスを示しています。0120 0800 は通話料金着信払いのフリーダイヤルです。
0120 は 10 桁 、0800 は携帯電話、PHS と同様に 11 桁あります。
# 1 から始まる緊急公共電話番号
1 から始まる番号
緊急性、公共性、安全性の観点から重要な時や電気通信サービスの利用に当たって容易な認識が必要となる付加サービスに使います。
| 番号 | 利用方法 |
|---|---|
| 104 | 電話番号の案内 |
| 110 | 警察への通報 |
| 111 | 試験 |
| 115 | 電報受付 |
| 117 | 時報 |
| 118 | 海上保安機関への通報 |
| 119 | 消防への通報 |
| 171 | 災害用伝言ダイヤル |
| 177 | 天気予報 |
| 188 | 消費者生活相談受付 |
| 189 | 児童虐待通告・児童相談受付 |
# 数字の電話番号をフォーマット
0352535000 を 03-5253-5000 のように自動フォーマット変換してくれる javascript ライブラリ google-libphonenumber 使います。
Validation 系
parseNumber(text, [defaultCountry], [options]): StringformatNumber(number, format, [options]): StringgetNumberType(number, [defaultCountry]): StringisValidNumber(number, [defaultCountry]): Boolean
Format 系
E164: +818005003000Original: 0800-500-3000National: 0800-500-3000International: +81 800-500-3000
CDN の場合
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.1.10/libphonenumber-js.min.js
const telNumber = "08005003000";
const telFormated = new libphonenumber.AsYouType("JP").input(telNumber);
console.log(telFormated);
// 0800-500-3000
npm の場合
# npm
npm i google-libphonenumber
# yarn
yarn install google-libphonenumber
nodejs
const telNumber = "08005003000";
const GL = require("google-libphonenumber");
const PhoneNumberUtil = GL.PhoneNumberUtil;
const util = PhoneNumberUtil.getInstance();
const PhoneNumberFormat = GL.PhoneNumberFormat;
const tel = util.parseAndKeepRawInput(telNumber, "JP");
const telFormated = util.format(tel, PhoneNumberFormat.NATIONAL);
console.log(telFormated);
// 0800-500-3000
バージョンによって使える method 変わるので、要注意
オンライン playground
https://catamphetamine.gitlab.io/libphonenumber-js/
参考ドキュメント
https://gitlab.com/catamphetamine/libphonenumber-js/#cdn