VB编程:身份证号码是否合法
一、运行效果:
二、程序代码:
Private Sub Command1_Click()
Label2.Caption = ""
Label2.BackColor = Me.BackColor
Label2.ForeColor = Me.ForeColor
If IsNumeric(Text1.Text) = False Then
Label2.Caption = "输入的身份证号码无效!"
Label2.BackColor = vbRed
Label2.ForeColor = vbWhite
ElseIf Len(Text1.Text) = 15 Then
x = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1)
y = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
temp = Mid(Text1.Text, 1, 6)
temp = temp + "19"
temp1 = Mid(Text1.Text, 7, 15)
temp = temp + temp1
s = 0
For i = 0 To 16
j = Int(Mid(temp, i + 1, 1)) * x(i)
s = s + j
Next i
s = s Mod 11
str1 = temp + Trim(y(s))
Label2.Caption = "身份证有效:" & str1
Label2.BackColor = vbGreen
Label2.ForeColor = Me.ForeColor
ElseIf Len(Text1.Text) = 18 Then
str1 = Text1.Text
Label2.Caption = "身份证有效:" & str1
Label2.BackColor = vbGreen
Label2.ForeColor = Me.ForeColor
ElseIf Len(Text1.Text) <> 15 And Len(Text1.Text) <> 18 Then
Label2.Caption = "输入的身份证号码无效!"
Label2.BackColor = vbRed
Label2.ForeColor = vbWhite
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Text1_Change()
Label3.Caption = Len(Text1.Text)
End Sub
三、学习总结:
中间的15位身份证到18位身份证算法可以忽略,主要了解颜色值即可。