Impressive, but how about an email address such as [EMAIL PROTECTED] --
obviously this can be incorporated into the regex, but does anyone know of a
comprehensive database or list of all valid domain names which one could
throw into the regex (presumably one could bundle in a | delimited list of
them)

----- Original Message -----
From: "Robertson-Ravo, Neil (RX)" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, January 28, 2003 1:43 PM
Subject: RE: [ cf-dev ] Regular Expression for Email and Domain checking -
it works!


> Holy shit....nice one... very nice indeed.........
>
> -----Original Message-----
> From: Paul Johnston [mailto:[EMAIL PROTECTED]]
> Sent: 28 January 2003 13:47
> To: [EMAIL PROTECTED]
> Subject: [ cf-dev ] Regular Expression for Email and Domain checking -
> it works!
>
>
> Everyone,
>
> For those that can't be bothered to read to the bottom here is the regular
> expression for validating an email address:
>
>
^[a-zA-Z0-9!##\$%&''\*\+-/=\?\^_`\{\|}~]+([.][a-zA-Z0-9!##\$%&''\*\+-/=\?\^_
>
`\{\|}~]+)*@([a-z0-9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[a
> -z0-9])|com|co[.]uk|net|org|com[.]uk)$
>
> Having read the various RFC's around the place about domains and emails, I
> just thought I'd let you know what I'd found out!
>
> Here is the regular expression for validating the part before an @ in an
> email address:
>
> [a-zA-Z0-9!#$%&'*+-/=?^_`{|}~]+([.][a-zA-Z0-9!#$%&'*+-/=?^_`{|}~]+)*
>
> Basically, according to RFC 2822 (and I haven't checked what's updated it
> yet, so this may still be incomplete), this is the form that an address
must
> take before the @ sign.  It starts with either a digit or a number, or one
> of the other characters in there, and then can include a period, but must
> end in one of those characters (ie not in a period). There are 2 other
forms
> of email address, but they are mainly for use internally within a
mailserver
> (and are unimportant in terms of functionality of the regex) and it should
> be no problem to ignore them.
>
> My previous email outlined the regular expression for validating a domain
> name (simple form):
>
>
([a-z0-9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[a-z0-9])|com|
> co[.]uk|net|org|com[.]uk)
>
> And you can create a regular expression for validating emails.  Please
note,
> that none of this is tested, although it does look okay to me ;).  The
> regular expression then for testing if an email is valid is:
>
>
[a-zA-Z0-9!#$%&'*+-/=?^_`{|}~]+([.][a-zA-Z0-9!#$%&'*+-/=?^_`{|}~]+)*@([a-z0-
>
9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[a-z0-9])|com|co[.]uk
> |net|org|com[.]uk)
>
> (NOTE: watch the word wrap)
>
> Bearing in mind that CF needs to escape several of the characters in the
> regular expression, it becomes this:
>
>
[a-zA-Z0-9!##\$%&''\*\+-/=\?\^_`\{\|}~]+([.][a-zA-Z0-9!##\$%&''\*\+-/=\?\^_`
>
\{\|}~]+)*@([a-z0-9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[a-
> z0-9])|com|co[.]uk|net|org|com[.]uk)
>
> And also taking into account that you need to check the whole string, ie
> this must be from the start to the end, you get:
>
>
^[a-zA-Z0-9!##\$%&''\*\+-/=\?\^_`\{\|}~]+([.][a-zA-Z0-9!##\$%&''\*\+-/=\?\^_
>
`\{\|}~]+)*@([a-z0-9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[a
> -z0-9])|com|co[.]uk|net|org|com[.]uk)$
>
> You can easily make this into a function or into a custom tag.  In fact,
> I'll be nice and write the function for you:
>
> <cfscript>
> // returns true or false depending on whether or not it's valid
> function isValidEmail(emailstr) {
> regex =
>
"^[a-zA-Z0-9!##\$%&''\*\+-/=\?\^_`\{\|}~]+([.][a-zA-Z0-9!##\$%&''\*\+-/=\?\^
>
_`\{\|}~]+)*@([a-z0-9]([-]|[a-z0-9])*[a-z0-9][.])+(([a-z0-9]([-]|[a-z0-9])*[
> a-z0-9])|com|co[.]uk|net|org|com[.]uk)$";
> if(REFind(regex, emailstr)) {
> return true;
> }
> else
> return false;
> }
> </cfscript>
>
> (NOTE: watch the word wrap again)
>
> I hope this helps you all sort your email addresses out okay now!
>
> Paul
> -------------------------------------------
> Paul Johnston
> PJ Net Solutions Ltd
> http://www.pjnetsolutions.com
> [EMAIL PROTECTED]
> +44 (0)7866 573013
>
>
>
>
> --
> ** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> For human help, e-mail: [EMAIL PROTECTED]
>
> --
> ** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> For human help, e-mail: [EMAIL PROTECTED]
>



-- 
** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/

To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
For human help, e-mail: [EMAIL PROTECTED]

Reply via email to