PHPでの正規表現についてのメモ書き
以下は、郵便番号をチェックする為のプログラム。
(\マークは、JISでは\(円記号)。ASCIIではバックスラッシュである)
<?php
$zip = '987-6543';
$zip = mb_convert_kana($zip, 'a', 'UTF-8');
if(preg_match("/\A\d{3}[-]\d{4}\z/",$zip)){
print('郵便番号:〒' . $zip);
}else{
print('※ 郵便番号を 123-4567の形式でご記入ください');
}
?>
mb_convert_kanaを使用しているので、全角の数字も許可するプログラムとなっている。
preg_matchにて、正規表現のチェックを行っている。
正規表現の意味合いは以下の通り。
/
\A 文章の先頭であることをチェックする
\d{3} dはdecimal(十進法)を意味する。10進数3桁であることをチェックする
[-] 半角の - であることをチェックする
\d{4} 10進数4桁であることをチェックする
\z 文章の最後であることをチェックする
/