vb.net - 使用校验位算法来判断输入的值是否有效?
问题描述
我正在为一个表单编写代码,该表单应该确定用户输入的值是否作为校验位有效。他们输入一个 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
我认为我这样做的方式应该可行,但我没有太多可以参考的关于如何使语法正常工作的参考。我尝试做的方式会起作用还是我需要以不同的方式去做?
解决方案
推荐阅读
- javascript - 如何在 Express 4.x 上设置请求超时
- python - 使用日期和时间对 Pandas DataFrame 进行排序
- html - 链接旋转但最终在页面的完全不同的区域?
- reactjs - [React-Context]:表单验证错误第一次没有出现
- java - Apache Flink:为 DataStream API 添加侧输入
- javascript - 如何在里面设置Javascript的变量值
- elasticsearch - docker上的elasticsearch - 快照和恢复 - access_denied_exception
- sql - PostgreSQL 触发器和函数使用三表连接/子查询搜索更新表
- javascript - 从 Node 中的 URL 下载 CSV
- rust - Rust 特征别名