ASP.Net - проверка адреса электронной почты с помощью регулярного выражения? - PullRequest
0 голосов
/ 02 мая 2010

При проверке адреса электронной почты с помощью компонента проверки регулярных выражений необходимо добавить дополнительный RequiredFieldValidator, чтобы обеспечить наличие значения.

В основном я позаботился об этом с помощью CustomFieldValidator, и позаботился об этом с помощью Javascript.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 02 мая 2010

Почему бы вам не использовать RegularExpressionValidator и RequiredFieldValidator?

Если вы используете CustomFieldValidator, вам нужно будет выполнить проверку javascript и проверку на стороне сервера. Совместное использование двух других элементов управления валидацией не требует дополнительной реализации, за исключением нескольких устанавливаемых атрибутов, и это ожидаемый способ проверки этого типа с помощью WebForms.

Подумайте о следующем программисте, который придет, чтобы увидеть ваши различные настройки, и удивитесь, почему вы пошли на всю эту дополнительную работу, когда ничего из этого не было нужно.

0 голосов
/ 16 августа 2012

Если вы хотите сделать это в фоновом коде, вы можете использовать следующую функцию:

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
...