Bob wrote:

>Suggested change (incorporating everything above):
>
>    if( eregi( "[EMAIL PROTECTED]([-
>.]?[0-9a-z])*\\.[a-z]{2,6}$", $email, $check ))

While playing around with this, I noticed that it does not accept

    [EMAIL PROTECTED]

as a valid email address, while the old/current regexp does accept it
(again, probably due to the unescaped dot).


>I've tested this and it works, correctly accepting
>[EMAIL PROTECTED] and [EMAIL PROTECTED] and
>correctly rejecting [EMAIL PROTECTED] and
>[EMAIL PROTECTED] I'm not sure about the last case but
>I've never seen an address of this form before;

In my understanding of RFC(2)822, that last example would be valid, too.
PEAR's Mail_RFC822 class accepts [EMAIL PROTECTED], but
does not accept [EMAIL PROTECTED] :-/


>I know, someone could easily spend a month trying to make COM_isemail
>identify all legal email addresses

Yeah, it's a pretty complex matter.

I don't care about the case with more than one '+' too much, but I think
that domains without a dot should be accepted. My regexp-fu is a bit
rusty, what would the correct expression be? My first idea was ...(\\.[a-
z]{2,6}){0,1}$ but that accepts things like @blah.localhost ...

bye, Dirk


-- 
http://www.haun-online.de/
http://geeklog.info/

Reply via email to