入力が有効な電子メールであっても、誤った一致を返すような、かなり単純な電子メール検証機能を実装しようとしました。私は既存の正規表現の問題を検索しましたが、正しいと思われます。RegexでVB.NET電子メールの検証
一致が偽の値を返すにもかかわらず、プログラムは次の妥当性検査レベルにステップしています。
ここに電子メール検証機能があります。
Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
Dim regExPattern As String = "^[A-Z0-9._%+-][email protected][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ステートメントを深刻にカスケードするトリガとなるクリックイベントでこのすべてが呼び出されます。
clickイベントは、「AreFieldsSet <> True」かどうかを尋ねます。 「AreFieldsSet」関数の内部には、複数の入力に対するすべての検証が含まれています。そのうちの1つは電子メール検証のif文です。
ために、このコードを試すことができます - 問題がどこにある可能性があります。 – antonpug
また、電子メールアドレス検証用のtry catchでSystem.Net.Mail.MailAddressオブジェクトをインスタンス化することを検討することもできます。 – N0Alias