VB身份z验证

VB身份z验证,第1张

概述刚学VB没多久 研究了一下身份z验证 也参考了网上一些资料 希望帮看看有什么不足 Private Function 身份z信息校验(sfzhV As String, csrqV As String, xbV As String, errorV As String) As IntegerDim xsV(17) As IntegerDim i As IntegerDim sumV As Int

刚学VB没多久

研究了一下身份z的验证

也参考了网上一些资料

希望帮看看有什么不足

Private Function 身份z信息校验(sfzhV As String,csrqV As String,xbV As String,errorV As String) As IntegerDim xsV(17) As IntegerDim i As IntegerDim sumV As IntegerDim modV As IntegerDim dywsV As String'/**************************************'***校验身份z是否合法***''身份z校验:1.出生日期 csrqV'            2.性别     xbV'入口参数:'        1.sfzhV     身份z号'        2.csrqV     出生日期'        3.xbV       性别'出口参数:'        1.errorV     错误信息'返回值: 身份z信息校验=0    为校验通过'        身份z信息校验<>0   校验不通过''1.当csrqV = "",xbV = ""时,只校验身份z出生'  日期是否符合日期格式要求'2.当csrqV<> ""或xbV <> ""时,同时校验'  出生日期或性别是否跟身份z相符''/***************************************'身份z校验系数:'从第一位到第十七位的系数分别为:'7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。xsV(0) = 7xsV(1) = 9xsV(2) = 10xsV(3) = 5xsV(4) = 8xsV(5) = 4xsV(6) = 2xsV(7) = 1xsV(8) = 6xsV(9) = 3xsV(10) = 7xsV(11) = 9xsV(12) = 10xsV(13) = 5xsV(14) = 8xsV(15) = 4xsV(16) = 2'校验身份z位数If Len(Trim(sfzhV)) <> 18 Then    errorV = "身份z位数不对!"    身份z信息校验 = -1    Exit FunctionEnd IfsumV = 0'身份z号码按位与身份z校验系数相乘,并将所有积相加。For i = 0 To 17    sumV = sumV + Val(MID(sfzhV,i + 1,1)) * xsV(i)Next'对sumV/11 取模modV = sumV Mod 11'余数对应身份z最后一位'其分别对应的最后一位身份z的号码为1-0-X -9-8-7-6-5-4-3-2。Select Case modVCase 0    dywsV = "1"Case 1    dywsV = "0"Case 2    dywsV = "X"Case 3    dywsV = "9"Case 4    dywsV = "8"Case 5    dywsV = "7"Case 6    dywsV = "6"Case 7    dywsV = "5"Case 8    dywsV = "4"Case 9    dywsV = "3"Case 10    dywsV = "2"End SelectIf dywsV <> MID(sfzhV,18) Then    errorV = "身份z号不合法!"    身份z信息校验 = -1    Exit FunctionEnd IfIf Trim(csrqV) <> "" And Trim(csrqV) <> MID(sfzhV,7,8) Then    errorV = "身份z号码与所输入的出生日期不符!"    身份z信息校验 = -1    Exit FunctionEnd IfIf Trim(xbV) <> "" Then    Select Case Val(MID(sfzhV,17,1)) Mod 2    Case 0        If Trim(xbV) <> "女" Then            errorV = "身份z号码与所输入的性别不符!"            身份z信息校验 = -1            Exit Function        End If    Case 1        If Trim(xbV) <> "男" Then            errorV = "身份z号码与所输入的性别不符!"            身份z信息校验 = -1            Exit Function        End If    End SelectEnd If身份z信息校验 = 0End Function
总结

以上是内存溢出为你收集整理的VB身份z验证全部内容,希望文章能够帮你解决VB身份z验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存