はじめに
実務にて、フォームデータを郵便番号入力チェックするバリデーション(入力値の検証)を実装する作業があり、それを解決した情報になります。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 正規表現構文を記述しています。
/
:デリミタ\A
:エスケープシーケンス 検索対象文字列の始端\d
: 10 進数字[0-9]
と同じ{}
: 繰り返し?
: 量指定子{0,1}
と同じ\z
:エスケープシーケンス 検索対象文字列の終端
正規表現を可視化すると下記のようになります。
下記の文字列とマッチします。
1234567
123-4567
下記の文字列とマッチしません。
123456
12345678
1234-567
123+4567
余談ですが、日本の郵便番号 は 1968(昭和 43)年 7 月 1 日に導入されました。当初は 3 桁、又は 5 桁の番号で、7 桁になったのは 1998(平成 10)年 2 月 2 日からです。
以上です。
おわり
サンプルのソースコードを再利用する際は、要件定義やコーディング規約に気を付けください。