PHPの正規表現を使って、入力された数値が郵便番号かどうかを判別する方法を紹介します。
正規表現で、入力された数値が郵便番号かどうか判別する方法:
デモページ
日本国内では、郵便番号は「xxx-xxxx」と、3桁の数字+4桁の数字で表すように定められています。
この数列をPHPの「正規表現」を用いて判別します。
判別を行う正規表現は /^d{3}-d{4}$/
を使います。
先頭と最後にある/(スラッシュ)は正規表現の始まりと終わりを示す記号。
最初の「^¥d{3}
」で先頭にある数字が3文字であることを、その次に「-」が入ること、続く「¥d{4}
」で数字が4文字であること、最後の「$/
」で正規表現の終了を示します。
PHPプログラム全体のコードは以下。
<?php $zip = mb_convert_kana($_REQUEST['zip'],'a','utf-8'); if (preg_match("/^d{3}-d{4}$/",$zip)) { echo ('成功です! 郵便番号が入力されました! 〒:'. $zip); } elseif (empty($zip)) { echo ('まだ何も入力されていません。'); } else { echo('入力形式が違います。郵便番号は「123-4567」の形式で記入してください。'); } ?>
関数「mb_convert_kana
」で角を半角に変換していることもポイントの1つ。
でもページも用意したので挙動を確認してみてください。
正規表現で、入力された数値が郵便番号かどうか判別する方法:
デモページ