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位身份证算法可以忽略,主要了解颜色值即可。