[Tep-j-general] tep_validate_email の精度について

Back to archive index

hamada bungu****@leo*****
2007年 10月 26日 (金) 12:07:39 JST


こんにちわ。

On Thu, 25 Oct 2007 19:36:22 +0900 (JST)
Suzuki <vx247****@yahoo*****> wrote:

> aaa..****@ezweb*****

その話、確か先月にもありましたよ?(^_^;)

そん時はかなりダイナミックな方法で解決されてましたが、たとえばPEARでは、
こんな風にしてるみたいです。

Mail-1.1.14/Mail/RFC822.php

>     function isValidInetAddress($data, $strict = false)
>     {
>         $regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
>         if (preg_match($regex, trim($data), $matches)) {
>             return array($matches[1], $matches[2]);
>         } else {
>             return false;
>         }
>     }

これで「多くの人に適合する」そうです。件の例も、$strict=trueでちゃんと通っ
てるみたい。

> print_r(isValidInetAddress('aaa..****@ezweb*****', true));

> Array ( [0] => aaa..aaaa [1] => ezweb.ne.jp ) 

でもまぁ、基本的に

「正規表現でメールアドレスの正当性を調べることは難易度が高い」

ということのようで。


はまだ




Tep-j-general メーリングリストの案内
Back to archive index