簡體   English   中英

如何檢查文本框是否在VB中至少包含一位數字

[英]How to check if a textbox contains at least one digit in VB

我正在使用此代碼

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 ,它就可以工作。

作為正則表達式解決方案的替代方法,可以使用Char.IsDigit檢查字符是否為數字。

Dim str = "pass1234"
Dim hasDigit = str.ToCharArray().Any(Function(c) Char.IsDigit(c))

老實說,我只在這里使用一個正則表達式。

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是“任何一位數字”的縮寫。)

您必須在每個代碼上使用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

我看到了很多不錯的答案,但我只是想對您所綁定的內容進行一些擴展。 您錯過了額外的一組()。 您需要“不”整個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM