0

vb.net Windows フォーム アプリケーションへの電子メール アドレスを検証しようとしています。これは、別のクラスで記述された検証電子メール関数です。

Public Function ValidateEmailAddress(strEmailAddress As String) As Boolean

    Dim pattern As String
    pattern = "^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"

    If Regex.IsMatch(strEmailAddress, pattern) Then
        Return True
    Else
        Return False
    End If

End Function

次に、このコードを記述して、別のクラスから IsValid 関数を呼び出しました

 If ValidateEmailAddress(txtEmailAddress.Text) Then
        MessageBox.Show("Email Valid")
    Else
        MessageBox.Show("Email Not Valid")
    End If

このコードをステップ実行すると、ValidateEmailAddress 関数の Return True ステートメントをスキップし、isValid() 関数の MessageBox.Show("Email Valid") もスキップします。したがって、正しい電子メール形式を入力しても、Email not Valid return ステートメントが表示されます。正規表現パターンが正しいか、誰かがここで間違っていることを見つけてください。ありがとう

4

1 に答える 1

0

私にとって、それは正規表現の問題のように見えます。これを試してください:

Public Function ValidateEmailAddress(strEmailAddress As String) As Boolean
    Dim EmailRegex As New Regex("^([a-zA-Z0-9_\-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
    If EmailRegex.IsMatch(strEmailAddress) Then
        Return True
    Else
        Return False
    End If
End Function

簡単な回答で申し訳ありませんが、現時点では、エラーがどこにあるのかを指摘する時間がほとんどありません。

于 2012-07-23T11:26:24.607 に答える