如果存在Underscore字符,则正则表达式电子邮件地址验证将失败

时间:2010-08-31 10:19:51

标签: vb.net regex email-validation

我对正则表达式很新,但我认为这是验证表单上输入的电子邮件地址的最佳方法。

我的正则表达式有效,除非输入的电子邮件地址中包含下划线字符(_)。

由于我缺乏正则表达式的经验,我不确定在我的模式中我应该添加违规字符以允许它:

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中工作不多,所以我希望没有人能指出在哪里添加_

提前致谢

3 个答案:

答案 0 :(得分:0)

验证电子邮件的唯一方法是在此地址发送邮件并等待回复。

一个简单的检查可以测试其中是否有@。但是如果你想使用你的正则表达式,你必须在char类中添加_[-a-zA-Z0-9_]

答案 1 :(得分:0)

如果您真的想要对正则表达式进行修复:

Dim pattern As String = "^[a-zA-Z0-9][-\._a-zA-Z0-9]*@[a-zA-Z0-9][-\.a-zA-Z0-9]*\.(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$"

无论如何,正如我在评论中所解释的那样,这仍然可以证明许多错误的邮件。

答案 2 :(得分:0)

这是在' @'之前阻止下划线的那个。如果有人需要这个,

^[a-zA-Z0-9][-\.a-zA-Z0-9]*@[a-zA-Z0-9][-\.a-zA-Z0-9]*\.(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$

但是我看到一些带有下划线的邮件地址......据M42所说是发送电子邮件并等待他们激活他们的帐户将是一个不错的选择..但不会立即完成..