2010-09-22 63 views
0

我一直在试图找到一个良好的RegEx电子邮件验证。RegEx使用的System.Net.Mail.MailAddress

我已经通过Comparing E-mail Address Validating Regular Expressions这并不足以满足我所有的验证需求。 我有Google/Bing(ed)并扫描前50个奇数结果,包括正则表达式信息文章和其他东西。

因此,最后我用System.Net.Mail.MailAddress类来验证我的电子邮件地址。因为,如果失败了,我的电子邮件将不会发送给用户。

我想定制类的构造函数所使用的验证。

那么,如何继续并获取MailAddress类正在使用的验证/ RegEx?

回答

0

由于反射器......忘了你仍然有自由!

反映的System.Net.Mail.MailAddress ...

发现它使用了void ParseValue(string address)

void GetParts(string address)方法主要检查电子邮件地址格式。

//编辑

很惊讶,没有RegEx参与!

+0

以下是解析http://referencesource.microsoft时使用的源代码。 COM /#系统/网络/系统/网络/邮件/ MailAddressParser.cs – stefann 2017-05-25 06:56:02

2

不,它不使用RegEx,而是一个复杂的过程,在这里解释时间太长。我怎么知道?我使用.NET Reflector查看了实现。所以你可以:d

http://www.red-gate.com/products/reflector/(免费)

+0

正是我刚刚做的!我会为你的正则表达式采用某种标准 - 可能在你看到的50个奇怪结果中找到一个。 – 2010-09-22 06:10:37

+0

谢谢吨家伙!只是忘了反射器仍然存在,MS没有像其他API供应商那样混淆其代码。 :) – Vaibhav 2010-09-22 06:12:02

+0

以下是解析http://referencesource.microsoft.com/#System/net/System/Net/mail/MailAddressParser.cs的源代码 – stefann 2017-05-25 06:55:52

0

根据Reflector,该类根本不使用正则表达式。