我正在使用此代码
If Not s.Contains("1") Or s.Contains("0") Or s.Contains("2") Or _
s.Contains("3") Or s.Contains("4") Or s.Contains("5") Or _
s.Contains("6") Or s.Contains("7") Or s.Contains("8") Or s.Contains("9") Then
MsgBox("Password must contain one digit")
End If
但是当我输入多个数字时,它不起作用。
对于例如abc1234
,它会显示消息"Password must contain one digit"
,但是如果我写abc1
,它就会有效。
答案 0 :(得分:3)
作为正则表达式解决方案的替代方案,您可以使用Char.IsDigit
检查字符是否为数字。
Dim str = "pass1234"
Dim hasDigit = str.ToCharArray().Any(Function(c) Char.IsDigit(c))
答案 1 :(得分:2)
老实说,我只是在这里使用正则表达式。
Dim re As New Text.RegularExpressions.Regex("\d")
If Not re.IsMatch(s) Then
MsgBox("Password must contain at least one digit")
End If
你已经完成了! (\d
是“任何单个数字”的缩写形式。)
答案 2 :(得分:1)
您必须在每个代码上使用AndAlso Not
才能使代码正常工作......
If Not s.Contains("1") AndAlso Not s.Contains("0") AndAlso Not s.Contains("2") AndAlso Not _
s.Contains("3") AndAlso Not s.Contains("4") AndAlso Not s.Contains("5") AndAlso Not _
s.Contains("6") AndAlso Not s.Contains("7") AndAlso Not s.Contains("8") AndAlso Not s.Contains("9") Then
MsgBox("Password must contain one digit")
End If
答案 3 :(得分:1)
我看到很多好的答案,但我只是想扩大一点你的关系。 你错过了一组额外的()。你需要" Not"整个if语句。
If Not ( s.Contains("1") Or s.Contains("0") Or s.Contains("2") Or _
s.Contains("3") Or s.Contains("4") Or s.Contains("5") Or _
s.Contains("6") Or s.Contains("7") Or s.Contains("8") Or s.Contains("9") ) Then
MsgBox("Password must contain one digit")
End If