【发布时间】:2012-03-21 17:02:10
【问题描述】:
我有一个正则表达式来验证我的邮件地址,如下所示:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
这很好用,但只允许输入一封电子邮件。现在我想扩展它并允许添加多个邮件地址(例如 MS Outlook),并使用分号作为邮件拆分器。
mail1@tld.com;mail2@tld.com;mail3@tld.com
现在我已经搜索并找到了这个:
([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}(;|$))
这在某一点上有效,但遗憾的是需要在邮件末尾使用分号:
mail1@tld.com;
当用户只输入一封电子邮件时,这不是我想要的。
如何扩展我上面的正则表达式(第一个)以允许添加多个邮件地址,同时让它们通过分号分隔?
【问题讨论】:
-
您可以编写一个函数来为您进行拆分,然后对每封电子邮件执行正则表达式。
-
How to use a regular expression to validate an email addresses? 的可能重复项 - 链接到 正则表达式 - ex-parrot.com/~pdw/Mail-RFC822-Address.html(大约一页长)。
-
不要忘记,电子邮件地址可能很难验证,例如 foo@host 是一个有效地址
标签: c# regex validation email rfc