2010-05-01 125 views
0

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

我主要采用CustomFieldValidator处理此问题,并使用Javascript处理此问题。

有没有更好的方法来做到这一点?

回答

2

为什么不使用RegularExpressionValidatorRequiredFieldValidator

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

考虑下一位将会出现的程序员,看看您的不同设置,并想知道为什么您在所有这些额外的工作中都不需要时才去做。

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 
相关问题