SOLVED: Re: [thelist] JS regex help

Maximillian Schwanekamp lists at neptunewebworks.com
Thu Oct 7 17:24:56 CDT 2004


brian cummiskey wrote:

> Maximillian Schwanekamp wrote:
>
>> Try this (untested):
>> var objRegExp  = 
>> /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{2,4})(\.[a-z]{2})*$)/i; 
>>
>> Note the {2,4} is the only change.
>
> Now, let's just hope there's no non-TLD's with a 5-letter suffix 
> (although, .co.uk tested positive, as did other double-dot domains 
> with both between 2 and 4)

Oh, you know I read that too quickly.  Maybe this would be better and 
simpler:
var objRegExp  = 
/^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{2,4})(\.[a-z]{2})*$/i;

I think that would allow 2-4 chars alone (.ws, .com, .info) and 
optionally a two-letter country extension (.uk, etc).  I'm not overly 
practice with RegEx, so maybe someone else will have a better solution.

Don't forget to use server-side validation.,,  Here's a fn from (IIRC) 
the php manual:
    /***
    * Validate Email Address
    * @return Bool true if string is email, false otherwise
    */
    function is_email($email)
    {
        
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag
|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw
|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|
edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|
gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|
la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum
|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl
|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|
sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye
|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]
|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
    }}

FWIW!

PS - Does /anyone/ have a .museum email addres?!?
-- 
Maximillian Von Schwanekamp
Dynamic Websites and E-Commerce
NeptuneWebworks.com <http://www.neptunewebworks.com/>
voice: 541-302-1438
fax: 208-730-6504



More information about the thelist mailing list