【发布时间】:2011-04-06 04:52:40
【问题描述】:
我对正则表达式非常陌生,但我认为这是验证表单中输入的电子邮件地址的最佳方式。
我的正则表达式有效,除非输入的电子邮件地址中包含下划线字符 (_)。
由于我缺乏使用正则表达式的经验,我不确定我应该在我的模式中的哪个位置添加违规字符以允许它:
Dim pattern As String = "^[-a-zAZ0-9][-.a-zA-Z0-9]*@[-.a-zA-Z0-0]+(\.[-.a-zA-Z0-0+)*\." & _
"(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$"
DreamInCode 上的另一个人也遇到了同样的问题。他说他通过在数字检查后添加_ 来修复它。
我看到 A-Z0-9,但我不确定哪个是数字检查...我在 Regex 中工作不多,所以我希望没有人介意指出在哪里添加 _
提前致谢
【问题讨论】:
-
您的正则表达式也会在许多其他方面被破坏。电子邮件地址不适合正则表达式。有关详细信息,请参阅此问题:stackoverflow.com/questions/201323/…
-
虽然如果你真的想做,这个应该是正确的(如果使用正确的话):ex-parrot.com/~pdw/Mail-RFC822-Address.html
-
基本上我只是为了确保用户以正确的格式输入电子邮件地址,即
<username>@this.com -
尽管他可能以您的正则表达式不支持的正确格式输入它。因此,您可能会阻止人们使用合法的电子邮件地址。你仍然无法阻止他打错字。我建议只做一个非常基本的检查,它是否包含一个
@和至少一个.,这至少应该阻止任何人错误地输入邮政地址而不是电子邮件地址或类似地址 -
你的正则表达式是一团糟。它会验证正常的电子邮件,例如:“a..-weird--mail-..@.-.-some.-.-weird.--domain.com” 还有一个类型不匹配,您忘记了 A nad 之间的破折号第一部分中的 Z:^[-a-zA-Z0-9]...
标签: vb.net regex email-validation