当前位置: 首页 > 知识库问答 >
问题:

Visual Basic-输入验证

杜俊晤
2023-03-14

我需要帮助解决一个小问题。我编程时间不长,不知道如何解决这个问题。我有一个学校的小项目,我不明白为什么在验证输入时会出现这个错误。

例如,我正在通过创建一个函数来根据输入的值返回真值或假值来检查输入是否有效以及在最小和最大范围之间。我使用函数的原因是因为我正在进行多次类似的检查,我认为与其再次重写它,这是执行此任务的最佳方式。

Do While inputValid(string, min, max)

这是我的验证,下面是验证这一点的简单函数。

Private Function inputValid(input As String, min As Integer, max As Integer)
    If Not IsNumeric(input) Then
        Return False
    End If

    If input > min Or input < max Then
        Return False
    Else
        Return True
    End If
End Function

出于某种原因,尽管事实如此,在检查值是否在数值范围内之前,它应该确保该值是数值。当我键入nothing或字符串时,它仍然会向我发送一个错误,因为它试图将其转换为double。然而,如果我没有进行任何范围之间的检查,如果它只是一个没有错误的数字,那么它会检查得很好。

有人能帮我修一下吗?谢谢

共有3个答案

秦景同
2023-03-14

您可以使用整数。TryParse函数检查字符串是否可以转换为整数。

此外,您还可以返回一个布尔值,它是比较的结果:而不是类似于

所以你的函数看起来像

Private Function StringIsValidInteger(s As String, min As Integer, max As Integer) As Boolean
    Dim tmp As Integer

    If Integer.TryParse(s, tmp) Then
        Return (tmp >= min AndAlso tmp <= max)
    End If

    Return False

End Function
吕高昂
2023-03-14

使用正则表达式对字符串进行数值验证可能会更好

Private Function inputValid(input As String, min As Integer, max As Integer)
    dim regex as new Regex("[\d]+")    
    If not regex.isMatch(input) OrElse cint(input) > min OrElse cint(input) < max Then
        Return False
    Else
        Return True
    End If
End Function
孔波
2023-03-14

您可以使用CInt将字符串转换为整数

Private Function inputValid(input As String, min As Integer, max As Integer)
    Dim v as Integer
    If Not IsNumeric(input) Then
        Return False
    End If
    v=CInt(input)
    If v < min Or v > max Then
        Return False
    Else
        Return True
    End If
End Function
 类似资料:
  • 根据经验,您永远不应该信任从最终用户收到的数据, 并且应该在充分利用之前对其进行验证。 要给 model 填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们。该方法会返回一个布尔值,指明是否通过验证。若没有通过,你能通过 yii\base\Model::$errors 属性获取相应的报错信息。比如, $model = new \app\mode

  • 问题内容: 我是这个C ++世界的新手,正在尝试为数字密码编写输入验证功能。这是我到目前为止所得到的: 对于不正确的值,它工作得很好,但在有效输入时不会中断循环。知道我在这里缺少什么吗?干杯!! James Kanze脚本的ErroR: 新代码: 使用 和 验证作为字符串 感谢所有人(尤其是James Kanze)的帮助。这件事在这里很有效。 那里还有进一步改进的空间吗?干杯!! 问题答案: 这看

  • 主要内容:输入验证,应用代码,实例解析AngularJS 表单和控件可以验证输入的数据。 输入验证 在前面的几个章节中,你已经学到关于 AngularJS 表单和控件的知识。 AngularJS 表单和控件可以提供验证功能,并对用户输入的非法数据进行警告。 客户端的验证不能确保用户输入数据的安全,所以服务端的数据验证也是必须的。 应用代码 < !DOCTYPE html > < html > < script src= "http:/

  • 有人能帮我完成输入验证功能吗。我正在验证整数输入。问题是当用户输入多个整数my cin时。fail()对每个整数运行,导致我的错误显示多次。让我告诉你我的意思 这是我的代码: 因此,如果用户要输入“jjj”;我的“请只输入整数”显示三次。我只想让它显示一次。我不知道怎么做。有什么想法吗?

  • 如何验证输入,以便当输入为空时弹出消息