use*_*652 3 vb.net string digits
我怎么能检查一个字符串是否只包含4位数字(或一年)
我试过这个
Dim rgx As New Regex("^/d{4}")
Dim number As String = "0000"
Console.WriteLine(rgx.IsMatch(number)) // true
number = "000a"
Console.WriteLine(rgx.IsMatch(number)) // false
number = "000"
Console.WriteLine(rgx.IsMatch(number)) //false
number = "00000"
Console.WriteLine(rgx.IsMatch(number)) // true <<< :(
Run Code Online (Sandbox Code Playgroud)
当小于4或字符但不大于4时,返回false
谢谢!
我实际上不会使用正则表达式.表达式看似简单(^\d{4}$),直到您意识到您还需要评估该数值以确定有效的年份范围...除非您想要年0013或类似9015.无论如何,你最有可能最终想要将值作为整数.鉴于此,最好的验证可能只是实际尝试将其转换为刚刚结束的整数:
Dim numbers() As String = {"0000", "000a", "000", "00000"}
For Each number As String In numbers
Dim n As Integer
If Integer.TryParse(number, n) AndAlso number.Length = 4 Then
'It's a number. Now look at other criteria
End If
Next
Run Code Online (Sandbox Code Playgroud)