A valid e-mail address is a string that matches the ABNF production
1*( atext / "." ) "@" ldh-str *( "." ldh-str )
whereatext
is defined in RFC 5322 section 3.2.3, andldh-str
is defined in RFC 1034 section 3.5.
atext = ALPHA / DIGIT / ; Printable US-ASCII characters not including specials. Used for atoms. "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" /"|" / "}" /"~"
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig-hyp> ::= <let-dig> | "-" <let-dig> ::= <letter> | <digit> <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <digit> ::= any one of the ten digits 0 through 9