広く浅く時々深く

やってみたいなと思ったことをなんとなくやってみる

一瞬つまずいたところ

rubyやったりswiftやったりフラフラちょっとずつかじってきましたが、とりあえず今はphpに落ち着きました。
エンジニアのバイトの方でも使ってるから早くできるようにならないとーってことで。

テキスト

今使ってるのはバイト先から貸してもらってるkindleに入ってるこちら。 よくわかるPHPの教科書

今回つまづいたところ

入力フォームでありがちな郵便番号の入力。
入力された郵便番号が本当に意図した形式かチェックするところで一瞬つまずきました。
問題のコードがこちら。

<?php
$zip = mb_convert_kana($_REQUEST['zip'], 'a', 'utf-8');

  if (preg_match("/¥A¥d{3}¥-¥d{4}¥z/", $zip)) {
    echo "郵便番号:〒" . $zip;
  }else {
    echo "※郵便番号は 123-4567の形式でご記入ください";
  }
?>

$zipに入力フォームで入力されたテキストが入っていてそれがちゃんと郵便番号の形式になってるか確認する、、、 つまり、正規表現の問題ですね。

このコードだと123-4567のように正しい形式で入力してもpreg_matchでのチェックに引っかかってくれませんでした。。。

原因

わかりません。笑
どなたか教えてください。。。

解決策

正規表現のところを次のように書き換えるとすんなりいきました。

<?php
preg_match("/^[0-9]{3}-[0-9]{4}$/", $zip)
?>

こっちの方が直感的にわかりやすい。