入力が有効な電子メールであっても、誤った一致を返すように見えるかなり単純な電子メール検証関数を実装しようとしました。既存の正規表現の問題を検索しましたが、正しいようです。
一致が偽の値を返しても、プログラムは次の検証レベルに進んでいます (そうすべきではありません)。
これがメール検証機能です。
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 ステートメントです。