18. 5月 2012 · [PHP]これなら通る?メールアドレスの正規表現(初歩的なチェック) はコメントを受け付けていません。 · Categories: WEB制作 · Tags: ,

@ or at sign made of puzzle pieces on white background

「だからおまいらは正規表現を書くな(ry」というお叱りと恥を承知で投稿。

経験談から、メールアドレス欄に入ってきたものがエラーになる場合、相手が人なら大抵は本人の勘違い。ということで「こういう入力だと困る」という観点から正規表現を考えてみた。

よくあるのが、

  1. 入力する欄を間違えている
  2. @が抜けてる
  3. .と,を間違える
  4. アカウントやドメインを間違える(docomo.ne.jp → docomo.nejp)

1は項目にもよるけど、日本語が入ってたら蹴ればいいんじゃないかと。4は携帯のドメインくらいならある程度は検証できる。でもメールアドレス間違えてたらどうしようもない。

あとはPG側で救済できる2と3の場合の簡単な正規表現を考えてみる。
(厳密なメールアドレスのルールに沿ったものは有名な http://goo.gl/yCr07 で掲載されているのは承知の上)

preg_match(“/^[^@]+@[0-9a-zA-Z]+.[a-zA-Z.]+$/”, $mail);

これでどうかな。
個人的には大文字がメールアドレスに入っているのが嫌なんだけど、使ってる人もいるのでいれておく。

目的は厳密なメールアドレスかどうかを調べることではなくて、入力した人が初歩的な入力ミスに気づけるようにすること。メールアドレス間違いまでは如何ともしがたいけどなあ・・・。


Comments closed