Skip to content

Instantly share code, notes, and snippets.

@renatoalbano
Created October 26, 2009 22:09
Show Gist options
  • Save renatoalbano/219087 to your computer and use it in GitHub Desktop.
Save renatoalbano/219087 to your computer and use it in GitHub Desktop.
/****
RFC822 Email Address Regex
Translated to Javascript by Renato Albano
http://tfletcher.com/lib/rfc822.rb
http://iamcal.com/publish/articles/php/parsing_email/
Licensed under a Creative Commons Attribution-ShareAlike 2.5 License
http://creativecommons.org/licenses/by-sa/2.5/
*****/
var isValidEmailAddress = function(email) {
qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-';
atom += '\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
quoted_pair = '\\x5c[\\x00-\\x7f]';
domain_literal = "\\x5b(?:"+dtext+"|"+quoted_pair+")*\\x5d";
quoted_string = "\\x22(?:"+qtext+"|"+quoted_pair+")*\\x22";
domain_ref = atom;
sub_domain = "(?:"+domain_ref+"|"+domain_literal+")";
word = "(?:"+atom+"|"+quoted_string+")";
domain = sub_domain+"(?:\\x2e"+sub_domain+")*";
local_part = word+"(?:\\x2e"+word+")*";
addr_spec = local_part+"\\x40"+domain;
pattern = "^"+addr_spec+"$";
return (new RegExp(pattern)).test(email);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment