在VB 2010上检查输入的数据是字符串还是数字

时间:2016-01-12 16:29:38

标签: vb.net

我写了一个程序来检查输入ID的格式,如果格式不正确,我打印“无效”。

格式为:“Dog123”。第一个字母是大写的第二个小写和第三个数字。

我在Visual Basic 2010上写了一篇简短的文章,只是为了使用ASCII值检查第一个字母,但它不起作用。

  Sub Main()
        Dim ID As String
        Dim FL As String
        Dim CORRECT As Boolean
        CORRECT = 0
        Console.WriteLine("Enter Identitfication")
        ID = Console.ReadLine
        FL = Left(ID, 1)
        If FL = FL >= Asc("A") Then
            If FL = FL <= Asc("Z") Then
                CORRECT = 1
                Console.WriteLine("Valid")
            End If
        End If
        If CORRECT = 0 Then
            Console.WriteLine("Invalid")
        End If
        Console.ReadKey()
    End Sub

有人可以告诉我我做错了吗?

4 个答案:

答案 0 :(得分:2)

使用前三个字符的Char.Is方法尝试以下操作,然后最后三个我们要求Integer.TryParse验证我们有一个int。

Module Module1
    Sub Main()
        Dim ID As String
        Console.WriteLine("Enter Identitfication")
        ID = Console.ReadLine
        If ID.Length = 6 Then
            If Char.IsUpper(ID(0)) AndAlso
                Char.IsLower(ID(1)) AndAlso
                Char.IsLower(ID(2)) AndAlso
                Integer.TryParse(ID.Substring(3, 3), Nothing) Then

                Console.WriteLine("Good to go")

            Else
                Console.WriteLine("Bad 2")
            End If
        Else
            Console.WriteLine("Bad 1")
        End If
        Console.ReadKey()
    End Sub

End Module

答案 1 :(得分:0)

  1. 为什么你使用布尔数据类型作为整数,你应该像这样使用它

    正确=真

  2. 您可以使用 AndAlso 替换嵌套的if,以便您的代码

    如果FL&gt; = Asc(&#34; A&#34;)又要FL&lt; = Asc(&#34; Z&#34;)那么......

  3. 3.您只检查了第一个字符,您必须检查第二个和第三个以及数字

    1. 必须删除的内容FL = FL

    2. 您可以将代码 FL =左(ID,1)替换为FL = ID(0)

答案 2 :(得分:0)

对于这种验证,您应该查看RegEx(正则表达式)。你建立了一个像你一样的模式:

  

第一个字母是大写第二个小写和第三个数字。

然后,你测试你的字符串。

这是测试您的模式的工具:http://regexr.com/

答案 3 :(得分:0)

我会使用正则表达式来查明我的id是否匹配。

您必须Imports System.Text.RegularExpressions

Sub Main()

    Console.WriteLine("Enter Identitfication")
    Dim ID As String = Console.ReadLine

    If Regex.IsMatch(ID, "[A-Z]{1}[a-z]{2}\d{3}") Then
        Console.WriteLine("Valid")
    Else
        Console.WriteLine("Invalid")
    End If

    Console.ReadKey()


End Sub

以上正则表达式检查以确保:

  1. 位置1的字符与[A-Z],大写
  2. 相匹配
  3. 接下来的两个字符匹配[a-z],lowecase
  4. 接下来的三个字符是数字[\ d]