PHPプログラムに関する各種メモ書き

PHPでメールアドレスのチェックを【filter_var】【正規表現】で行う。

PHP5.2から filter_var というメールアドレス等をチェックする関数が追加されています。

filter_var でのメールアドレスのチェック

filter_var('bob@example.com', FILTER_VALIDATE_EMAIL);

便利なのですが昔の日本の携帯アドレスはRFC準拠していなくても使えていたみたいですし、そういったアドレスはエラーとされてしまいます。

それなら正規表現のほうがカスタマイズがきいていいような気がします。

正規表現でのメールアドレスチェッククラス【AddressValidate.php】

PHPのメジャーフレームワークの正規表現を網羅してクラス化してあります。便利!

http://d.hatena.ne.jp/m-tag/20081118/1227000201

PHPメジャーフレームワークの正規表現

CakePHP 1.2
/^[a-z0-9!#$%&'*+\/=?^_`|~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`|~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]2,4|museum|travel)$/i
CakePHP 1.3
/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[-_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,4}|museum|travel)/i
Ethna
/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i

正規表現がチェックできるサイト

http://www.rubular.com/


Perlの場合CPANの Email::Valid を使うのがいいでしょう

http://search.cpan.org/search?query=Email%3A%3AValid&mode=all


参考

http://d.hatena.ne.jp/j0hn/20070602

http://d.hatena.ne.jp/m-tag/20081118/1227000201


関連エントリー

添付ファイル1
No.889
08/12 10:29

edit

添付ファイル

正規表現
メール