您现在的位置:软界网技术中心WEB开发ASP > 技术显示
身份证验证代码函数
2005-9-5 0:00:00   网友评论       阅读次数 点此评论
   FunctionCheckCardId(e)
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',',')

IfLen(e)<15OrLen(e)=16OrLen(e)=17OrLen(e)>18Then
CheckCardId='身份证号共有15码或18位'
CheckCardId=False
ExitFunction
EndIf

DimAi
IfLen(e)=18Then
Ai=Mid(e,1,17)
ElseIfLen(e)=15Then
Ai=e
Ai=Left(Ai,6)&'19'&Mid(Ai,7,9)
EndIf
IfNotIsNumeric(Ai)Then
CheckCardId='身份证除最后一位外,必须为数字!'

ExitFunction
EndIf
DimstrYear,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)
IfIsDate(BirthDay)Then
IfDateDiff('yyyy',Now,BirthDay)<-140orcdate(BirthDay)>date()Then

CheckCardId='身份证输入错误!'
ExitFunction
EndIf
IfstrMonth>12OrstrDay>31Then
CheckCardId='身份证输入错误!'
ExitFunction
EndIf
Else
CheckCardId='身份证输入错误!'
ExitFunction
EndIf
Dimi,TotalmulAiWi
Fori=0To16
TotalmulAiWi=TotalmulAiWi+CInt(Mid(Ai,i+1,1))*Wi(i)
Next
DimmodValue
modValue=TotalmulAiWiMod11
DimstrVerifyCode
strVerifyCode=arrVerifyCode(modValue)
Ai=Ai&strVerifyCode
CheckCardId=Ai

IfLen(e)=18Ande<>AiThen
CheckCardId='身份证号码输入错误!'
ExitFunction
EndIf
EndFunction
response.writeCheckCardId('528337194801020025')’’’’’’’’’这个不知是谁的身份证,我一试就出来了~~~~~~~~~哈哈
’’’’’这个如果返回的是输入的身份证,则表明正确,否则会提示出错...  
      来源: 作者:
 
【评论查看】
更多关于 身份证验证代码函数  的技术