Re: Re: Email Validation built-in? RFC
| From: | Manuel Lemos | Date: | Mon, 24 Oct 2005 16:56:31 +0000 |
| Subject: | Re: Re: Email Validation built-in? RFC | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-224558@lists.php.net to get a copy of this message | ||
Hello,
on 10/23/2005 07:21 PM Robin Vickery said the following:
If I am not mistaken, PCRE supports recursive regular expressions. Anyway, the way I got the RFC that is not quite the form of an address but the way it may be presented in message header. Meaning, you can add comments in To: or other e-mail header but in reality the comments are not part of the address.1. Technically you can't write a regular expression that matches *all* valid email addresses as part of the address specification is recursive.Checking MX records is not reliable at all.I agree that it is less useful today, but it still help catches many domain name typos.... would it not make sense for there to be a BUILT-IN PHP function of a TRUE email syntactic validation?I don't see that being much better than passing a good regular expression to preg_match.ccontent = ctext / quoted-pair / comment comment = "(" *([FWS] ccontent) [FWS] ")"Admittedly 99.99% of people don't even know you *can* comment email addresses so it's not a huge problem...
2. Very few people seem to be capable of recognising a *good* regular expression, let alone writing one. It seems clear that validating an address is a task that many people want to do, but few can do properly. I'd say that's a good reason for making it a built-in function.Yes. What I meant is that just copying a good enough regular expression would be sufficient to use it. There is no need to understand it.
You are right of course. What I wrote is not what I meant. I fixed the sentence later but I did not realize that the message had already been sent. What I meant is that despite I use that regular expression for many years without complaints, it could be improved to reject only invalid characters, but of course that is not what that expression does. -- Regards, Manuel Lemos PHP Classes - Free ready to use OOP components written in PHP http://www.phpclasses.org/ PHP Reviews - Reviews of PHP books and other products http://www.phpclasses.org/reviews/ Metastorage - Data object relational mapping layer generator http://www.meta-language.net/metastorage.htmlFor many years I use this regular expression in popular email validation and forms generation and validation classes. Rather than accepting only valid characters, it rejects all invalid characters as specified in the RFC. ^([-!#$%&'*+./0-9=?A-Z^_I'm sorry, but this regular expression rejects many perfectly valid ASCII characters. It seems to take into account only dot-atoms, not quoted-strings. It also rejects valid addresses using domain-literals.a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_a-z{|}~]+\\.)+[a-zA-Z]{2,6}$