会员登陆
登录加载中...
超级搜索
栏  目  
类  别  
关键词  
 站内搜索   网络搜索
  
 当前位置:文章首页>>本站原创>>网站编程>>居民身份证校验函数
推荐给你的朋友阅读:

居民身份证校验函数

来源:飞腾设计网 发表日期: 2008-07-11 11:53:55

    代码从网上搜索而来,经过修改调试,可以正常运行。

Function IDCheck(e)
 IDCheck=True
 Dim arrVerifyCode,Wi,Checker,BirthDay
 arrVerifyCode=Split("1,0,X,9,8,7,6,5,4,3,2",",")
 Wi=Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2",",")
 Checker=Split("1,9,8,7,6,5,4,3,2,1,1",",")
 If Len(e)<15 Or Len(e)=16 Or Len(e)=17 Or Len(e)>18Then
  'IDCheck="身份证号共有15位或18位"
  IDCheck=False
  Exit Function
 End If
 Dim Ai '判断最后一位是否为字符
 If Len(e)=18 Then
  Ai=Mid(e,1,17)
 ElseIf Len(e)=15 Then
  Ai=e
  Ai=Left(Ai,6)&"19"&Mid(Ai,7,9)
 End If
 If Not IsNumeric(Ai) Then
  'IDCheck="身份证除最后一位外,必须为数字!"
  IDCheck=False
  Exit Function
 End If
 Dim strYear,strMonth,strDay
 strYear=CInt(Mid(Ai,7,4))
 strMonth=CInt(Mid(Ai,11,2))
 strDay=CInt(Mid(Ai,13,2))
 BirthDay=Trim(strYear)+"-"+Trim(strMonth)+"-"+Trim(strDay)
 If IsDate(BirthDay) Then
  If DateDiff("yyyy",Now,BirthDay)<-140 Or CDate(BirthDay)>Date() Then
   'IDCheck="身份证输入错误!"
   IDCheck=False
   Exit Function
  End If
  If strMonth>12 Or strDay>31 Then
   IDCheck=False
   'IDCheck="身份证输入错误!"
   Exit Function
  End If
 Else
  'IDCheck="身份证输入错误!"
  IDCheck=False
  Exit Function
 End If
 Dim i,TotalmulAiWi
 For i=0 To 16
  TotalmulAiWi=TotalmulAiWi+CInt(Mid(Ai,i+1,1))*Wi(i)
 Next
 Dim modValue
 modValue=TotalmulAiWi Mod 11
 Dim strVerifyCode
 strVerifyCode=arrVerifyCode(modValue)
 Ai=Ai&strVerifyCode
 'IDCheck=Ai
 IDCheck=True
 If Len(e)=18 And e<>Ai Then
  'IDCheck=   "身份证号码输入错误!"
  IDCheck=False
  Exit Function
 End If
End Function

0
0
[作者:雨城 关键词:身份证,函数 录入:raincity 责编:raincity 阅读次数:3256]

相关文章 相关新闻 相关软件 相关教程 公共评论 发表评论

  • ·暂无相关内容
  • ·暂无相关内容
    评论载入中...
    您的称呼  验 证 码   
    您的评论 [ 最多字数:  已用字数:剩余字数:]

     
COPYRIGHT 2003-2010 创意飞腾科技有限公司(The Feitec LTD.) ALL RIGHTS RESERVED .
官方咨询官方咨询4376161 官方咨询526743959 技术支持:FeitecCMS5366464
页面加载时间:140.63ms Powered By:FeitecCMS V4.0(Build1101)
[蜀ICP备05000881]