2016-06-20 9 views
0

Ich habe diesen Code:Feld Nachricht für mehrere Bedingung

Class Form1 
    Function ValidatePassword(ByVal pwd As String, Optional ByVal minLength As Integer = 8, Optional ByVal numUpper As Integer = 1, Optional ByVal numLower As Integer = 1, Optional ByVal numNumbers As Integer = 1) As Boolean 
     Dim upper As New System.Text.RegularExpressions.Regex("[A-Z]") 
     Dim lower As New System.Text.RegularExpressions.Regex("[a-z]") 
     Dim number As New System.Text.RegularExpressions.Regex("[0-9]") 

     If Len(pwd) < minLength Then 
      MsgBox("Password must consist of 8 characters as minimum!") 
      Return False 
     End If 

     If upper.Matches(pwd).Count < numUpper Then 
      MsgBox("Password must consist of uppercase letter!") 
      Return False 
     End If 

     If lower.Matches(pwd).Count < numLower Then 
      MsgBox("Password must consist of lowercase letter!") 
      Return False 
     End If 

     If number.Matches(pwd).Count < numNumbers Then 
      MsgBox("Password must consist of at least 1 digit character!") 
      Return False 
     End If 

     MsgBox("Password OK!") 
     Return True 
    End Function 
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 
     Label3.Text = ValidatePassword(TextBox1.Text) 
    End Sub 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    End Sub 
End Class 

es gut funktioniert mir Nachricht zu geben, wenn eine der Bedingung erfüllt ist. Ich mag wie etwas bekommen: Zum Beispiel die Eingabe: askjf

dann Meldungsfeld zeigte:

  1. Passwort 8 Zeichen als Minimum bestehen müssen!
  2. Passwort muss aus Großbuchstaben bestehen!
  3. Passwort muss aus mindestens 1 Zeichen bestehen!

Kann jemand bitte helfen? Vielen Dank!

Antwort

0

Verwenden Sie eine List(Of String), um jeden aufgetretenen Fehler zu speichern.

Nach all den Überprüfungen, wenn Ihre List mehr als null Elemente hat, sollten Sie die Fehler in einem Meldungsfeld anzeigen. Ansonsten wurde der Test bestanden.

Hier ist ein Beispielcode:

Function ValidatePassword(ByVal pwd As String, Optional ByVal minLength As Integer = 8, Optional ByVal numUpper As Integer = 1, Optional ByVal numLower As Integer = 1, Optional ByVal numNumbers As Integer = 1) As Boolean 
    Dim upper As New System.Text.RegularExpressions.Regex("[A-Z]") 
    Dim lower As New System.Text.RegularExpressions.Regex("[a-z]") 
    Dim number As New System.Text.RegularExpressions.Regex("[0-9]") 

    'create a new list to store any errors 
    Dim messageList As New List(Of String) 
    'create a boolean to handle true/ false result 
    Dim checkResult As Boolean 

    'add messages as necessary depending on the checks 
    If Len(pwd) < minLength Then 
     messageList.Add("Password must consist of 8 characters as minimum!") 
    End If 

    If upper.Matches(pwd).Count < numUpper Then 
     messageList.Add("Password must consist of uppercase letter!") 
    End If 

    If lower.Matches(pwd).Count < numLower Then 
     messageList.Add("Password must consist of lowercase letter!") 
    End If 

    If number.Matches(pwd).Count < numNumbers Then 
     messageList.Add("Password must consist of at least 1 digit character!") 
    End If 

    ' check for any error messages 
    If messageList.Count = 0 Then 
     MsgBox("Password OK!") 
     checkResult = True 
    Else 
     'join the list items together using new line as separator for formatting 
     MessageBox.Show(Join(messageList.ToArray, vbCrLf)) 
     checkResult = False 
    End If 

    'result of function 
    Return checkResult 

End Function 
+0

Dies ist eine großartige Idee, aber ich habe diese Fehler: ‚Count‘ ist kein Mitglied von ‚System.Windows.Forms.Message‘ und den Namen ‚Ergebnis‘ ist Nicht deklariert. –

+0

Ich habe diesen Code auf einem vb.net Winforms-Projekt ausgeführt und es lief ohne Fehler. Ich habe den Code aktualisiert, um einen anderen Variablennamen zu verwenden, um Namenskonflikte zu vermeiden. Vielleicht versuch es nochmal. –

+0

großartig! Vielen Dank –

Verwandte Themen