PHP でフォームデータを郵便番号入力チェックする方法

はじめに

実務にて、フォームデータを郵便番号入力チェックするバリデーション(入力値の検証)を実装する作業があり、それを解決した情報になります。Web 開発の初心者、初学者の方にもわかりやすいように、ソースコードを編集してサンプルを公開しています、ご参考になれば幸いです。

検証環境

サンプル

解説

サンプルのソースコードを基に、基本的な PCRE 正規表現構文 を用いて説明します。

郵便番号のチェック

郵便番号 とは、3 桁、又は 5 桁の郵便区番号と、4 桁、又は 2 桁の町域番号からなる 7 桁の郵便物を分類する為の番号です。

3 桁目と 4 桁目間のハイフン有無で 2 通りの書き方があります。

前述の仕様を満たすには、下記のように preg_match でチェックします。

function checkPostalCode(string $str): int|false {
  return preg_match("/\A\d{3}-?\d{4}\z/", $str);
}

下記の PCRE 正規表現構文を記述しています。

正規表現を可視化すると下記のようになります。

下記の文字列とマッチします。

1234567
123-4567

下記の文字列とマッチしません。

123456
12345678
1234-567
123+4567

余談ですが、日本の郵便番号 は 1968(昭和 43)年 7 月 1 日に導入されました。当初は 3 桁、又は 5 桁の番号で、7 桁になったのは 1998(平成 10)年 2 月 2 日からです。

以上です。

おわり

サンプルのソースコードを再利用する際は、要件定義やコーディング規約に気を付けください。