4

入力が有効な電子メールであっても、誤った一致を返すように見えるかなり単純な電子メール検証関数を実装しようとしました。既存の正規表現の問題を検索しましたが、正しいようです。

一致が偽の値を返しても、プログラムは次の検証レベルに進んでいます (そうすべきではありません)。

これがメール検証機能です。

Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
        Dim regExPattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"
        Dim emailAddressMatch As Match = Regex.Match(emailAddress, regExPattern)
        If emailAddressMatch.Success Then
            Return True
        Else
            Return False
        End If
End Function

そして、電子メール検証関数を呼び出すフォーム検証用です。

If (String.IsNullOrEmpty(EmailTextBox.Text) OrElse EmailAddressChecker(EmailTextBox.ToString)) Then
            MessageBox.Show("Please enter a valid email addresss")
            Return False
End If

これらすべての呼び出しはクリック イベントで発生し、すべてのフィールドが設定されているかどうかをチェックする If ステートメントのカスケード シリアスをトリガーします。

コードの大部分をスキップすると、クリック イベントで「AreFieldsSet <> True」かどうかが尋ねられます。「AreFieldsSet」関数の内部には、複数の入力に対するすべての検証が含まれています。そのうちの 1 つは、電子メールの検証 if ステートメントです。

4

4 に答える 4

4

メールは大文字ですか?そうでない場合、一致しません。

大文字と小文字を区別しないように正規表現を変更する場合は、次を使用します。

"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"
于 2012-04-17T17:23:05.670 に答える
0

Regex オブジェクトの IsMatch 関数を使用する必要がある電子メール アドレスを検証するには、エントリの電子メール アドレスが有効かどうかを評価します。

Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
   Dim r As System.Text.RegularExpressions.Regex = Nothing
    Dim regExPattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"

    If r.IsMatch(emailAddress ,regExPattern ) Then
        Return True
    Else
        Return False
    End If
End Function
于 2012-04-17T17:26:10.693 に答える
0
Public Shared Function ValidEmailAddress(ByVal emailAddress As String, ByRef errorMessage As String) As Boolean    

       If emailAddress.IndexOf("@") > -1 Then
        If (emailAddress.IndexOf(".", emailAddress.IndexOf("@")) > emailAddress.IndexOf("@")) AndAlso emailAddress.Split(".").Length > 0 AndAlso emailAddress.Split(".")(1) <> "" Then
            errorMessage = ""
            Return True
        End If
    End If      
    Return False
End Function
于 2016-04-21T13:03:39.800 に答える