身份证15位转18位算法实现


 

<%
 

'身份证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
%>


豫ICP备12024565号-1   E-mail:admin@hlc8.com