VB身份证验证
来源:互联网 发布:淘宝商城865药店 编辑:程序博客网 时间:2024/05/01 23:15
刚学VB没多久
研究了一下身份证的验证
也参考了网上一些资料
希望帮看看有什么不足
Private Function 身份证信息校验(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'/**************************************'***校验身份证是否合法***''身份证校验:1.出生日期 csrqV' 2.性别 xbV'入口参数:' 1.sfzhV 身份证号' 2.csrqV 出生日期' 3.xbV 性别'出口参数:' 1.errorV 错误信息'返回值: 身份证信息校验=0 为校验通过' 身份证信息校验<>0 校验不通过''1.当csrqV = "",xbV = ""时,只校验身份证出生' 日期是否符合日期格式要求'2.当csrqV<> ""或xbV <> ""时,同时校验' 出生日期或性别是否跟身份证相符''/***************************************'身份证校验系数:'从第一位到第十七位的系数分别为:'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'校验身份证位数If Len(Trim(sfzhV)) <> 18 Then errorV = "身份证位数不对!" 身份证信息校验 = -1 Exit FunctionEnd IfsumV = 0'身份证号码按位与身份证校验系数相乘,并将所有积相加。For i = 0 To 17 sumV = sumV + Val(Mid(sfzhV, i + 1, 1)) * xsV(i)Next'对sumV/11 取模modV = sumV Mod 11'余数对应身份证最后一位'其分别对应的最后一位身份证的号码为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 = "身份证号不合法!" 身份证信息校验 = -1 Exit FunctionEnd IfIf Trim(csrqV) <> "" And Trim(csrqV) <> Mid(sfzhV, 7, 8) Then errorV = "身份证号码与所输入的出生日期不符!" 身份证信息校验 = -1 Exit FunctionEnd IfIf Trim(xbV) <> "" Then Select Case Val(Mid(sfzhV, 17, 1)) Mod 2 Case 0 If Trim(xbV) <> "女" Then errorV = "身份证号码与所输入的性别不符!" 身份证信息校验 = -1 Exit Function End If Case 1 If Trim(xbV) <> "男" Then errorV = "身份证号码与所输入的性别不符!" 身份证信息校验 = -1 Exit Function End If End SelectEnd If身份证信息校验 = 0End Function
0 0
- VB身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 验证身份证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 验证身份证
- 身份证验证
- 身份证验证
- PhpExcel中文帮助手册|PhpExcel使用方法
- 使用VS2010 C#开发ActiveX控件
- 此博客创建于2014年8月21日16:10pm
- 中断线程的几种方法
- struts2 05 action通配符
- VB身份证验证
- 20140821 主 板 调 试 日 记 加了 s p i后 master 跑不下去
- ruby基础-数组篇
- 嵌入式linux下操作GPIO
- 【问题】使用GCC编译c++程序遇到的protected继承问题
- 我就是我
- Procedural generated mesh in Unity: Part 1
- Windows下用Eclipse搭建C/C++开发环境
- LeetCode | String to Integer (atoi)