【问题标题】:ASP.Net - validating email address with regexp?ASP.Net - 使用正则表达式验证电子邮件地址?
【发布时间】:2011-02-14 15:59:19
【问题描述】:

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

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

有更好的方法吗?

【问题讨论】:

    标签: asp.net regex email-validation


    【解决方案1】:

    为什么不直接使用RegularExpressionValidatorRequiredFieldValidator

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

    考虑下一位即将到来的程序员,看看你的不同设置,并想知道为什么你在不需要这些额外的工作时还要去做这些额外的工作。

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 2015-08-24
        • 2016-01-21
        • 2021-05-02
        相关资源
        最近更新 更多