カテゴリ: Javaの正規表現 更新日: 2026/02/10

Javaの正規表現で電話番号の形式を判定する方法を初心者向けにやさしく解説

390
Java の正規表現で「電話番号」の形式を判定する方法

先生と生徒の会話形式で理解しよう

生徒

「Javaで電話番号の入力チェックをしたいんですが、どうやって判定すればいいですか?」

先生

「その場合は、Javaの正規表現を使うと、電話番号の形式かどうかをまとめてチェックできます。」

生徒

「ハイフンがあったりなかったりして、ルールが分からなくて困っています……」

先生

「電話番号にはある程度決まった形があります。正規表現を使えば、その形をルールとして表現できます。」

生徒

「正規表現は難しそうですが、初心者でも理解できますか?」

先生

「大丈夫です。電話番号チェックは、正規表現の入門としてとても分かりやすい題材です。」

1. Javaで電話番号の形式チェックが必要な理由

1. Javaで電話番号の形式チェックが必要な理由
1. Javaで電話番号の形式チェックが必要な理由

JavaでWebアプリケーションや業務システムを作成していると、 電話番号の入力チェックが必要になる場面がよくあります。 会員登録フォームや問い合わせフォームなどでは、電話番号の入力が必須になることも多いです。

もし形式チェックを行わずに登録してしまうと、 数字以外の文字が混ざったり、桁数が足りなかったりする電話番号も通ってしまいます。 こうした問題を防ぐために、Javaの正規表現を使ったチェックが重要になります。

2. 日本の電話番号の基本的な形式を理解しよう

2. 日本の電話番号の基本的な形式を理解しよう
2. 日本の電話番号の基本的な形式を理解しよう

正規表現を書く前に、日本の電話番号の基本的な形式を知っておくことが大切です。 一般的な電話番号は、数字とハイフンで構成されています。 例としては「090-1234-5678」や「03-1234-5678」などがあります。

携帯電話番号と固定電話番号では桁数や区切り位置が異なる場合がありますが、 どちらも数字とハイフンの組み合わせという点は共通しています。 Javaの正規表現では、この構造をルールとして表現します。

3. Javaの正規表現で電話番号をチェックする考え方

3. Javaの正規表現で電話番号をチェックする考え方
3. Javaの正規表現で電話番号をチェックする考え方

Javaの正規表現では、「どんな文字が」「どの順番で」並んでいるかを指定します。 電話番号の場合は、「数字が何桁」「ハイフンがどこに入るか」といった条件を表します。

初心者のうちは、すべての電話番号パターンを完全に網羅しようとしなくて大丈夫です。 まずは、よく使われる一般的な形式をチェックできる正規表現を理解することが大切です。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. ハイフンありの電話番号をチェックする正規表現

4. ハイフンありの電話番号をチェックする正規表現
4. ハイフンありの電話番号をチェックする正規表現

まずは、「090-1234-5678」のような、 ハイフン付きの電話番号をチェックする基本的な正規表現を見てみましょう。 Java初心者が最初に学ぶには、分かりやすい例です。


import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class PhoneNumberCheckExample {
    public static void main(String[] args) {
        String phone = "090-1234-5678";
        Pattern pattern = Pattern.compile("^\\d{2,4}-\\d{2,4}-\\d{4}$");
        Matcher matcher = pattern.matcher(phone);

        System.out.println(matcher.matches());
    }
}

true

この正規表現では、数字とハイフンの位置関係をルールとして指定しています。 桁数をある程度柔軟にすることで、携帯電話番号と固定電話番号の両方に対応できます。

5. ハイフンなしの電話番号をチェックする方法

5. ハイフンなしの電話番号をチェックする方法
5. ハイフンなしの電話番号をチェックする方法

入力によっては、ハイフンなしで電話番号が入力されることもあります。 その場合は、数字だけで構成されているかどうかをチェックする正規表現を使います。


import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class PhoneNumberNoHyphenExample {
    public static void main(String[] args) {
        String phone = "09012345678";
        Pattern pattern = Pattern.compile("^\\d{10,11}$");
        Matcher matcher = pattern.matcher(phone);

        System.out.println(matcher.matches());
    }
}

true

このように、Javaの正規表現を使えば、 ハイフンありとハイフンなしの電話番号を別々に判定できます。 入力形式に応じてルールを使い分けることがポイントです。

6. 不正な電話番号をチェックしてみる

6. 不正な電話番号をチェックしてみる
6. 不正な電話番号をチェックしてみる

正規表現が正しく動作しているかを確認するために、 不正な電話番号を使った例も見てみましょう。 これにより、形式チェックの効果が分かりやすくなります。


import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class PhoneNumberInvalidExample {
    public static void main(String[] args) {
        String phone = "090-12AB-5678";
        Pattern pattern = Pattern.compile("^\\d{2,4}-\\d{2,4}-\\d{4}$");
        Matcher matcher = pattern.matcher(phone);

        System.out.println(matcher.matches());
    }
}

false

数字以外の文字が含まれているため、正規表現に一致せず false になります。 Javaの正規表現を使うことで、このような不正な入力を確実に防げます。

7. 電話番号チェックでよくある注意点

7. 電話番号チェックでよくある注意点
7. 電話番号チェックでよくある注意点

電話番号の形式は国や用途によってさまざまです。 そのため、正規表現で完全にすべてのケースを判定しようとすると、非常に複雑になります。

Java初心者の場合は、「一般的な日本の電話番号形式」をチェックできれば十分なケースがほとんどです。 必要に応じて、少しずつ正規表現を調整していく考え方が大切です。

8. Java初心者が正規表現で電話番号チェックを学ぶメリット

8. Java初心者が正規表現で電話番号チェックを学ぶメリット
8. Java初心者が正規表現で電話番号チェックを学ぶメリット

Javaの正規表現で電話番号をチェックできるようになると、 入力チェックのコードがとてもシンプルになります。 複雑な条件分岐を書かずに、短いルールで判定できる点が大きな魅力です。

また、正規表現の考え方はJava以外のプログラミング言語でも共通しています。 ここで基本をしっかり身につけておくことで、 今後のプログラミング学習や実務にも大いに役立ちます。

Javaの正規表現の一覧へ
新着記事
Flutterアプリの署名設定(Android・iOSのポイント)
Flutterアプリの署名設定を完全解説!Android・iOSのビルドとデプロイ初心者ガイド
Java のインターフェースとは?普通のクラスとの違いを学ぼう
Javaのインターフェースとは?普通のクラスとの違いを学ぼう【初心者向け解説】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
EC2の料金体系を完全解説!オンデマンド・リザーブド・無料枠の違いとは?
EC2の料金体系を完全解説!オンデマンド・リザーブド・無料枠の違いとは?
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク