如何检查文本框是否包含VB中的至少一个数字

时间:2014-12-08 07:30:50

标签: vb.net validation

我正在使用此代码

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,它就会有效。

4 个答案:

答案 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