Displaying page
of
pages;
Items to
Title |
Test
Details
email address (RFC 2822 mailbox)
|
Expression |
^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
|
Description |
This accepts RFC 2822 email addresses in the form:<br>
[email protected] OR<br>
Blah < [email protected]><br>
<br>
RFC 2822 email 'mailbox':<br>
mailbox = name-addr | addr-spec<br>
name-addr = [display-name] "<" addr-spec ">"<br>
addr-spec = local-part "@" domain<br>
domain = rfc2821domain | rfc2821domain-literal<br>
<br>
local-part conforms to RFC 2822.<br>
<br>
domain is either:<br>
An rfc 2821 domain (EXCEPT that the final sub-domain must consist of 2 or more letters only).<br>
OR<br>
An rfc 2821 address-literal.<br>
(Note, no attempt is made to fully validate an IPv6 address-literal.)<br>
<br>
Notes:<br>
This pattern uses (.NET/Perl only?) features named group "(?<name>)" and alternation/IF (?(name)).<br>
<br>
See <a href="http://regexadvice.com/forums/permalink/26742/26742/ShowThread.aspx#26742">this regexadvice.com thread</a> for more info, including a version that does not use .NET features.<br>
<br>
RFC 2822 (and 822) do allow embedded comments, whitespace, and newlines within *some* parts of an email address, but this pattern above DOES NOT.<br>
<br>
RFC 2822 (and 822) allow the domain to be a simple domain with NO ".", but this pattern requires a compound domain at least one "." in the domain name, as per RFC 2821 (4.1.2).<br>
<br>
RFC 2822 allows/disallows certain whitespace characters in parts of an email address, such as TAB, CR, LF BUT the pattern above does NOT test for these, and assumes that they are not present in the string (on the basis that these characters are hard to enter into an edit box).
|
Matches |
|
Non-Matches |
|
Author |
Rating:
Mark Cranness
|
Displaying page
of
pages;
Items to