固定電話の電話番号の正規表現

正規表現のサンプルの中で固定電話の電話番号にマッチする正規表現について解説します。

(Last modified: )

固定電話の電話番号にマッチする正規表現

固定電話の電話番号は次のような値となります。(ハイフンで区切った場合です)。

0X-XXXX-XXXX
0XX-XXX-XXXX
0XXX-XX-XXXX
0XXXX-X-XXXX

※ 参考「総務省|電気通信番号制度|電話番号に関するQ&

固定電話の電話番号にマッチする正規表現は次のようになります。

^0([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4}$

以下解説と前提条件です。

固定電話ンの電話番号は現時点では国内プレフィックスの 0 、市外局番+市内局番、加入者番号、となっています。市外局番+市内局番の合計は 5 桁となっており例えば市外局番が 2 桁ならば市内局番は 3 桁となります。加入者番号は 4 桁固定です。

国内プレフィックス+市外局番+市内局番を表す正規表現は次のようになります。

0[0-9]-[0-9]{4}     // 例:03-1234
0[0-9]{2}-[0-9]{3}  // 例:045-123
0[0-9]{3}-[0-9]{2}  // 例:0166-12
0[0-9]{4}-[0-9]     // 例:04992-1

加入者番号は 4 桁の数字です。

[0-9]{4}

国内プレフィックス+市外局番+市内局番について 4 パターンから一つ選択し、ハイフン(-)のあとで加入者番号を追加、これに文字列の先頭にマッチするキャレット( ^ )と文字列オン末尾にマッチするドル記号を( $ )を追加して組み合わせたものが固定電話の電話番号を表す正規表現となります。

[0-9] の部分はすべて \d と記述しても構いません。

サンプル

JavaScript を使って簡単な正規表現のサンプルを作成してみます。

const regex = /^0([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4}$/;

regex.test('03-1234-5678');
--> true
regex.test('052-123-5678');
--> true
regex.test('046-7654-3210');
--> false // 市外局番の部分の文字数
regex.test('03-123-45678');
--> false // 市外局番などの文字数

固定電話の電話番号にマッチする正規表現(1)

-- --

正規表現のサンプルの中で固定電話の電話番号にマッチする正規表現について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。