【发布时间】:2010-07-26 09:04:49
【问题描述】:
我有以下与电子邮件地址格式匹配的正则表达式:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$
这用于使用 JavaScript 对表单进行验证。但是,这是一个可选字段。因此,如何更改此正则表达式以匹配电子邮件地址格式或空字符串?
根据我有限的正则表达式知识,我认为\b 匹配一个空字符串,而| 表示“或”,所以我尝试执行以下操作,但没有成功:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$|\b
【问题讨论】:
-
如果您必须验证电子邮件,请尽可能宽容。您会惊讶地发现,使用自制的正则表达式很容易错过真实、有效和实用的电子邮件地址。例如,您的正则表达式将在以下有效地址上失败:joe_blow@foo.com、micro$oft@apple.com、root@localhost、siegfried+roy@lasvegas.com。
-
同意Zano,看看这个正则表达式ex-parrot.com/pdw/Mail-RFC822-Address.html
-
@Anders 哇,这是一个非常复杂的正则表达式!我想我误解了正则表达式的复杂性
-
不,我认为您误解了电子邮件验证的复杂性 :-)
标签: javascript regex email-validation string