如描述中所述,我需要验证用户输入,以确保它至少有6个字符长,并包含1个数字字符和1个字母表字符。
到目前为止,我已经得到了长度验证工作,但似乎不能让我的数字验证正常工作。如果我只输入数字,它会工作,但如果我在IE abc123中输入字母,它将无法识别存在数字。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If txtPassword.TextLength < 6 Then
lblError.Text = "Sorry that password is too short."
ElseIf txtPassword.TextLength >= 6 Then
Dim intCheck As Integer = 0
Integer.TryParse(txtPassword.Text, intCheck)
If Integer.TryParse(txtPassword.Text, intCheck) Then
lblError.Text = "Password set!"
Else
lblError.Text = "Password contains no numeric characters"
End If
End If
End Sub
End Class
正则表达式呢?
using System.Text.RegularExpressions;
private static bool CheckAlphaNumeric(string str) {
return Regex.Match(str.Trim(), @"^[a-zA-Z0-9]*$").Success;
}
如果你只是想验证一个复杂的密码,那么这个就可以了。
-必须至少6个字符
-必须包含至少一个小写字母
-一个大写字母,
- 1位数字+ 1个特殊字符
有效特殊字符- @ # $ % ^,+ =
Dim MatchNumberPattern As String = "^.*(?=.{6,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"
If txtPasswordText.Trim <> "" Then
If Not Regex.IsMatch(txtPassword.Text, MatchNumberPattern) Then
MessageBox.Show("Password is not valid")
End If
End If
您可能希望使用regex来验证输入是否包含大写/小写字母,数字,特殊字符。