在vb.net中是否有一种方法可以运行if
语句来说明变量是以07
开头,然后是1-9
之间
我知道我可以使用substring
来做到这一点,但这会使if语句相当大
number_called.Substring(0, 3) = "071" or number_called.Substring(0, 3) = "072"
依此类推079
,但是我可以为整个范围创建更短的if
语句吗?
答案 0 :(得分:4)
这样做
Private Function CheckNumber(myNumber As String) As Boolean
Dim regex As Regex = New Regex("^07[1-9]]")
Dim match As Match = regex.Match(myNumber)
Return match.Success
End Function
只需致电CheckNumber("071")
或CheckNumber(number_called)
请记住导入参考Imports System.Text.RegularExpressions
更新表达式,谢谢Veeke
答案 1 :(得分:2)
如果您知道它总是以3个数字开头,您可以解析它
Dim num = Int32.Parse(number_called.Substring(0, 3))
Dim Valid= num>69 and num<80
如果您不知道它是否以3个数字开头,请用TryCatch
包围它答案 2 :(得分:2)
您可以使用String.StartsWith("07")
并检查String
的最后一个字符 - 它必须是数字,而不是0
,如下所示:
If str.Length = 3 And str.StartsWith("07") And Char.IsNumber(str(2)) And str(2) <> "0" Then
End If
答案 3 :(得分:2)
对Malcor的帖子进行小修正,但不检查它是否以&#39; 07&#39; (只要它包含&#39; 07&#39;):
match()
答案 4 :(得分:0)
如果你确定它总是一个数字字符串,你可以使用StartsWith和Select Case:
If number_called.StartsWith("07") Then
Select Case CInt(number_called.SubString(2, 1))
Case 1 to 9
'it matched
Case Else
'it didn't match
End Select
End If