<%
'身份证15位转18位算法实现
Function ID15toID18(ID15)
Dim Id17,Id18
dim jqyz(16),valueIndex(10)
jqyz(0)=7
jqyz(1)=9
jqyz(2)=10
jqyz(3)=5
jqyz(4)=8
jqyz(5)=4
jqyz(6)=2
jqyz(7)=1
jqyz(8)=6
jqyz(9)=3
jqyz(10)=7
jqyz(11)=9
jqyz(12)=10
jqyz(13)=5
jqyz(14)=8
jqyz(15)=4
jqyz(16)=2
valueIndex(0)="1"
valueIndex(1)="0"
valueIndex(2)="X"
valueIndex(3)="9"
valueIndex(4)="8"
valueIndex(5)="7"
valueIndex(6)="6"
valueIndex(7)="5"
valueIndex(8)="4"
valueIndex(9)="3"
valueIndex(10)="2"
'检查是不是15位
If len(ID15) <> 15 then
ID15toID18=ID15
exit function
End if
'检查是不是数字
For i=1 To 15
If Asc(Mid(ID15,i,1))<48 or asc(mid(ID15,i,1))>57 Then
ID15toID18=ID15
Exit Function
End if
Next
'转为17为
Id17=left(Id15,6) & "19" & right(Id15,9)
Dim SumAW
SumAW=0
for i=0 to 16
dim Id17I
Id17I=int(Mid(Id17,i+1,1))
SumAW=SumAW + Id17I*jqyz(i)
next
ID15toID18=Id17 & valueIndex(SumAW mod 11)
End Function
%>