Javascript 電話番号正規表現 ITかあさん

ITかあさん

Javascript 電話番号正規表現

Javascriptの電話番号のバリデーションを行っていたのですが、どうも電話番号を『現実的にかつ完璧に』正規表現チェックをするのは難しいらしい。
よく出回っている電話番号のバリデーションチェックだと以下のようなものがあるのですが、下記の場合だと最後のケタ数が4桁で終わらないといけないのでフリーダイヤルの一般的な形『0120-000-000』の対応が出来ない。

/^\d{2,4}-\d{2,4}-\d{4}$/

結論:電話番号正規表現は妥協が必要

下記が私が書いた電話番号の正規表現

/^0\d{1,4}-\d{1,4}-\d{3,4}$/

左のブロックから順に解説すると、

0から始まる2桁以上4桁以下-1桁以上4桁以下-3桁以上4桁以下

この形だと03-1-4678などありえない電話番号でもtureが返ってしまうのですが、そこはケースバイケースで。

おまけ:ハイフンなし

/^\d{7,13}$/
初夏のJavaScript祭 in サーキュレーションビル ForPro