ASP.Net - 用regexp验证电子邮件地址?

时间:2010-05-01 23:30:24

标签: asp.net regex email-validation

使用正则表达式验证组件验证电子邮件地址时,必须添加额外的RequiredFieldValidator以确保存在值。

我主要使用CustomFieldValidator来处理这个问题,并使用Javascript来处理这个问题。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

为什么不使用RegularExpressionValidatorRequiredFieldValidator

如果您使用CustomFieldValidator,则还需要执行javascript检查和服务器端检查。使用其他两个验证控件一起不需要额外的实现,除了设置了几个属性,这是使用WebForms进行此类验证的预期方法。

考虑一下即将出现的下一位程序员,看看你的不同设置,并想知道为什么你没有需要这些额外的工作。

答案 1 :(得分:0)

如果您想在后台代码中执行此操作,可以使用以下函数:

Function checkEMail(ByVal email As String) As Boolean

        Dim pattern As String = "^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|""((?=[\x01-\x7f])[^""\\]|\\[\x01-\x7f])*""\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|""((?=[\x01-\x7f])[^""\\]|\\[\x01-\x7f])*"")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$"

        Dim emailCheck As Match = Regex.Match(email, pattern)
        If emailCheck.Success Then
            checkEMail = True
        Else
            checkEMail = False
        End If

        Return checkEMail

    End Function