Try it! It validates it! Paul
------------------------------------------- Paul Johnston PJ Net Solutions Ltd http://www.pjnetsolutions.com [EMAIL PROTECTED] +44 (0)7866 573013 > -----Original Message----- > From: Giles Roadnight [mailto:[EMAIL PROTECTED]] > Sent: 28 January 2003 13:54 > To: [EMAIL PROTECTED] > Subject: RE: [ cf-dev ] Regular Expression for Email and > Domain checking - it works! > > > I think that that would fail on [EMAIL PROTECTED] though > wouldn't it? > > -----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]
