郵便番号バリデーション

preg_matchを使った各国の郵便番号のバリデーション

Countries and Postal codes formatsPostal Codes Formatsなどを参考。

PHP

// オーストラリア、ノルウェー // 4桁の数字(1234) if (! preg_match('/^[0-9]{4}\z/', $str)) { // エラー } // オーストリア、ベルギー、スイス // 4桁の数字(1234)、ただし0始まりはなし if (! preg_match('/^[1-9][0-9]{3}\z/', $str)) { // エラー } // ブラジル // 前5桁後3桁ハイフン区切りの数字(12345-678) if (! preg_match('/^[0-9]{5}-[0-9]{3}\z/', $str)) { // エラー } // カナダ // 前3桁英数字、後3桁英数字スペース区切り(A1A 2A3) if (! preg_match('/^[ABCEGHJ-NPRSTVXY][0-9][ABCEGHJ-NPRSTV-Z]\s[0-9][ABCEGHJ-NPRSTV-Z][0-9]\z/', $str)) { // エラー } // 中国 // 6桁の数字(123456) if (! preg_match('/^[0-9]{6}\z/', $str)) { // エラー } // フランス、ドイツ、イタリア // 5桁の数字(12345) if (! preg_match('/^[0-9]{5}\z/', $str)) { // エラー } // ポーランド // 前2桁後3桁ハイフン区切りの数字(12-345) if (! preg_match('/^[0-9]{2}-[0-9]{3}\z/', $str)) { // エラー } // ポルトガル // 前4桁後3桁ハイフン区切りの数字(1234-567)、ただし0始まりはなし if (! preg_match('/^[1-9][0-9]{3}-[0-9]{3}\z/', $str)) { // エラー } // ロシア // 6桁の数字(123456)、ただし0、7、8、9始まりはなし if (! preg_match('/^[1-6][0-9]{5}\z/', $str)) { // エラー } // 韓国 // 前3桁後3桁ハイフン区切りの数字(123-456)、ただし0、8、9始まりはなし if (! preg_match('/^[1-7][0-9]{2}-[0-9]{3}\z/', $str)) { // エラー } // イギリス // 前2~4桁英数字、後3桁英数字スペース区切り(前はAA1A、A1A、A1、A12、AA1、AA12、後は1AA) if (! preg_match('/^[A-Z]{1,2}[0-9][A-Z0-9]?\s[0-9][ABD-HJLNP-UW-Z]{2}\z/', $str)) { // エラー } // アメリカ // 5桁の数字(12345)または前5桁後4桁ハイフン区切りの数字(12345-6789) if (! preg_match('/^[0-9]{5}(-[0-9]{4})?\z/', $str)) { // エラー }

日本は正規表現 実用編の番号の通り。

PHP

// 世界の郵便番号(汎用) // 英数字、区切りがある場合はスペースかハイフン if (! preg_match('/^[A-Z0-9]{2,8}((-|\s)[A-Z0-9]{1,4}){0,2}\z/', $str)) { // エラー }

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について