使用正则表达式验证组件验证电子邮件地址时,必须添加额外的 RequiredFieldValidator 以确保存在值。
我主要使用 CustomFieldValidator 来处理这个问题,并使用 Javascript 来处理这个问题。
有没有更好的方法来做到这一点?
使用正则表达式验证组件验证电子邮件地址时,必须添加额外的 RequiredFieldValidator 以确保存在值。
我主要使用 CustomFieldValidator 来处理这个问题,并使用 Javascript 来处理这个问题。
有没有更好的方法来做到这一点?
你为什么不直接使用RegularExpressionValidator
and RequiredFieldValidator
?
如果您使用 a CustomFieldValidator
,则还需要实施 javascript 检查和服务器端检查。除了设置几个属性外,将其他两个验证控件一起使用不需要额外的实现,这是使用 WebForms 进行此类验证的预期方式。
考虑下一位即将到来的程序员,看到你的不同设置,并想知道为什么你在不需要这些额外的工作时还要去做这些额外的工作。
如果您喜欢在后台代码中执行此操作,可以使用以下函数:
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