vb.net if数字范围之间的语句

时间:2016-05-13 09:32:56

标签: vb.net

在vb.net中是否有一种方法可以运行if语句来说明变量是以07开头,然后是1-9之间

我知道我可以使用substring来做到这一点,但这会使if语句相当大

number_called.Substring(0, 3) = "071" or number_called.Substring(0, 3) = "072"

依此类推079,但是我可以为整个范围创建更短的if语句吗?

5 个答案:

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