On Wednesday 23 June 2004 09:29 pm, LRMK wrote:
> I am using following code to validate e-mail addresses
>
> if ($mail =~ m/^(\w+(\.|-))*\w+\@(\w+(\.|-)*)+\w+$/){
> valid
> }else{
> invalid
> }
>
> it will give valid results for all of the following e-mail address
>
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
>
>
> ...
>
> but I am not sure about the illegal chars for an e-mail address
> can someone check above code tell me whether this matches all the valid
> e-maill
> address and only the valid e-mail addresses.
You best reference for valid characters in the e-mail
address is RFC 822 which you can find via google or at:
http://www.faqs.org/rfcs/rfc822.html
It's rather heavy reading, but it's the standard.
I use this regex:
$valid = $addr =~ m#[\w\/\?\:\&\=\+\$\|\,\-\.\!\~\*\'\(\)[EMAIL PROTECTED];
which is a closer approximation to the RFC than your tests.
It is prob not restrictive enough, but I use it only to
format my web pages with an email address href.
You should check CPAN also.
Aloha => Beau;
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>