首页 > 解决方案 > 使用校验位算法来判断输入的值是否有效?

问题描述

我正在为一个表单编写代码,该表单应该确定用户输入的值是否作为校验位有效。他们输入一个 13 位数字,它应该确定最后一个值是否作为校验位有效。我已经编写了校验位算法的代码,但是在将算法找到的值与用户输入的值进行比较时遇到了麻烦。我尝试使用 substring 方法将用户给出的第 13 个数字与算法确定的校验位进行比较,但我对所有内容的语法都有疑问。

这是我一直在处理的代码:

Private Sub btnValidate_Click(sender As Object, e As EventArgs) Handles btnValidate.Click
    Dim intDigit As Integer
    Dim intTotalOdd As Integer
    Dim intTotalEven As Integer
    Dim intGrandTotal As Integer
    Dim intRemainder As Integer
    Dim intCheckDigit As Integer

    If txtNumber.Text.Length = 13 Then
        For intOdd As Integer = 1 To 11 Step 2
            intTotalOdd += (intDigit * 3)
        Next intOdd
        For intEven As Integer = 0 To 10 Step 2
            intTotalEven += intDigit
        Next intEven
        intGrandTotal = intTotalOdd + intTotalEven
        intRemainder = intGrandTotal Mod 10
        If intRemainder <> 0 Then
            intCheckDigit = 10 - intRemainder
        End If
        If txtNumber.Text.Substring(12, 13) = intCheckDigit Then
            lblStatus = "Valid"
        Else
            lblStatus = "Not Valid"
        End If
    End If

End Sub

我认为我这样做的方式应该可行,但我没有太多可以参考的关于如何使语法正常工作的参考。我尝试做的方式会起作用还是我需要以不同的方式去做?

标签: vb.net

解决方案


推荐阅读