最严谨的校验email地址的正则表达式及各种语言对应版

通用

复制代码 代码如下:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Python r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"

Javascript

复制代码 代码如下:
/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i
PHP 复制代码 代码如下:
/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD
Perl / Ruby (?:(?: )?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:( ?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*))*@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0 31]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\ ](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+ (?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?: (?: )?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: ) ?[ \t])*)*\<(?:(?: )?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\ r )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: ) ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t] )*))*(?:,@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])* )(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*) *:(?:(?: )?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+ |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t ]))*"(?:(?: )?[ \t])*))*@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031 ]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\]( ?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(? :(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(? : )?[ \t])*))*\>(?:(?: )?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(? :(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )? [ \t]))*"(?:(?: )?[ \t])*)*:(?:(?: )?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]| \\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<> @,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|" (?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*))*@(?:(?: )?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(? :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[ \]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000- \031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|( ?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)*\<(?:(?: )?[ \t])*(?:@(?:[^()<>@,; :\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([ ^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\" .\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\ ] \\]|\\.)*\](?:(?: )?[ \t])*))*(?:,@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\ [\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\ r\\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\] |\\.)*\](?:(?: )?[ \t])*))*)*:(?:(?: )?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0 00-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\ .|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@, ;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(? :[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*))*@(?:(?: )?[ \t])* (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[ ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\] ]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*\>(?:(?: )?[ \t])*)(?:,\s*( ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:( ?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[ \["()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t ])*))*@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(? :\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+| \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*|(?: [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\ ]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)*\<(?:(?: ) ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\[" ()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: ) ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<> @,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*(?:,@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@, ;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*)*:(?:(?: )?[ \t])*)? (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t])*)(?:\.(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z|(?=[\[ "()<>@,;:\\".\[\]]))|"(?:[^\" \\]|\\.|(?:(?: )?[ \t]))*"(?:(?: )?[ \t]) *))*@(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t]) +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*)(?:\ .(?:(?: )?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: )?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\] \\]|\\.)*\](?:(?: )?[ \t])*))*\>(?:( ?: )?[ \t])*))*)?;\s*)

Perl 5.10 or newer

/(?(DEFINE) (?<address> (?&mailbox) | (?&group)) (?<mailbox> (?&name_addr) | (?&addr_spec)) (?<name_addr> (?&display_name)? (?&angle_addr)) (?<angle_addr> (?&CFWS)? < (?&addr_spec) > (?&CFWS)?) (?<group> (?&display_name) : (?:(?&mailbox_list) | (?&CFWS))? ; (?&CFWS)?) (?<display_name> (?&phrase)) (?<mailbox_list> (?&mailbox) (?: , (?&mailbox))*) (?<addr_spec> (?&local_part) \@ (?&domain)) (?<local_part> (?&dot_atom) | (?"ed_string)) (?<domain> (?&dot_atom) | (?&domain_literal)) (?<domain_literal> (?&CFWS)? \[ (?: (?&FWS)? (?&dcontent))* (?&FWS)? \] (?&CFWS)?) (?<dcontent> (?&dtext) | (?"ed_pair)) (?<dtext> (?&NO_WS_CTL) | [\x21-\x5a\x5e-\x7e]) (?<atext> (?&ALPHA) | (?&DIGIT) | [!#\$%&'*+-/=?^_`{|}~]) (?<atom> (?&CFWS)? (?&atext)+ (?&CFWS)?) (?<dot_atom> (?&CFWS)? (?&dot_atom_text) (?&CFWS)?) (?<dot_atom_text> (?&atext)+ (?: \. (?&atext)+)*) (?<text> [\x01-\x09\x0b\x0c\x0e-\x7f]) (?<quoted_pair> \\ (?&text)) (?<qtext> (?&NO_WS_CTL) | [\x21\x23-\x5b\x5d-\x7e]) (?<qcontent> (?&qtext) | (?"ed_pair)) (?<quoted_string> (?&CFWS)? (?&DQUOTE) (?:(?&FWS)? (?&qcontent))* (?&FWS)? (?&DQUOTE) (?&CFWS)?) (?<word> (?&atom) | (?"ed_string)) (?<phrase> (?&word)+) # Folding white space (?<FWS> (?: (?&WSP)* (?&CRLF))? (?&WSP)+) (?<ctext> (?&NO_WS_CTL) | [\x21-\x27\x2a-\x5b\x5d-\x7e]) (?<ccontent> (?&ctext) | (?"ed_pair) | (?&comment)) (?<comment> \( (?: (?&FWS)? (?&ccontent))* (?&FWS)? \) ) (?<CFWS> (?: (?&FWS)? (?&comment))* (?: (?:(?&FWS)? (?&comment)) | (?&FWS))) # No whitespace control (?<NO_WS_CTL> [\x01-\x08\x0b\x0c\x0e-\x1f\x7f]) (?<ALPHA> [A-Za-z]) (?<DIGIT> [0-9]) (?<CRLF> \x0d \x0a) (?<DQUOTE> ") (?<WSP> [\x20\x09]) ) (?&address)/x

Ruby (simpler version)

/\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

最严谨的校验email地址的正则表达式及各种语言对应版》阅读地址:http://www.haoshilao.net/13208/

最新图文教程: