PHPで正しいメールアドレスを調べる方法
いくつか実装での「正しいメールアドレス」を調べてみました。
http://catbot.net/blog/2007/06/re_php.html
rhacoも入れてあげて!多分そんなに変わらないけど!
というわけでrhacoは以下のようになっています。(lang/Validate.phpより)
/** * Emailアドレスとして妥当か * * @param unknown_type $email * @return boolean */ function isEmail($email){ /*** * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@s.sss.cd")); * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@sss.cd")); * assert(!Validate::isEmail("aaaaaaa.aaaaaaaaa.a@ss.cd")); * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@s.sss.sss.cd")); * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.@s.sss.sss.cd")); */ if(preg_match("/^[\x01-\x7F]+@(?:[A-Z0-9-]+\.)*(?:[A-Z0-9-][A-Z0-9-][A-Z0-9-]+\.)+[A-Z]{2,6}$/i",$email) && strlen($email) <= 255){ return true; } return false; }
携帯のメールアドレスって変なの多いから適度にゆるく判定したほうがいいと思うなー。symfonyの判定ロジックはそのへん大丈夫なのかな。
ところでlang.Variableとlang.Validateって似てるよね!