asp身份证验证代码函数

时间:2021-05-28

身份证验证代码函数

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")'''''''''这个不知是谁的身份证,我一试就出来了~~~~~~~~~哈哈


'''''这个如果返回的是输入的身份证,则表明正确,否则会提示出错...



声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章