0
点赞
收藏
分享

微信扫一扫

18位身份证验证方法

Private Function CheckCidInfo(ByVal cid As String) As String 
   
        Dim aCity() As String
        "", "北京", "天津", "河北", "山西", "内蒙古", "", _ 
   
        "", "", "", "", "辽宁", "吉林", "黑龙江", "", "", _ 
   
        "", "", "", "", "", "上海", "江苏", "浙江", "安微", _ 
   
        "福建", "江西", "山东", "", "", "", "河南", "湖北", _ 
   
        "湖南", "广东", "广西", "海南", "", "", "", "重庆", _ 
   
        "四川", "贵州", "云南", "西藏", "", "", "", "", "", _ 
   
        "", "陕西", "甘肃", "青海", "宁夏", "新疆", "", "", _ 
   
        "", "", "", "台湾", "", "", "", "", "", "", "", "", _ 
   
        "", "香港", "澳门", "", "", "", "", "", "", "", "", "国外"} 
   
        Dim iSum As Double
        Dim info As String
        Dim rg As System.Text.RegularExpressions.Regex = New
        Dim mc As
        If mc.Success = False Then 
   
            Return
        End If 
   
        cid = cid.ToLower 
  
        cid = cid.Replace("x", "a") 
  
        If aCity(Integer.Parse(cid.Substring(0, 2))) = "" Then 
   
            Return非法地址" 
   
        End If 
   
        Try 
   
            DateTime.Parse(cid.Substring(6, 4) & "-" & cid.Substring(10, 2) & "-" & cid.Substring(12, 2)) 
  
        Catch ex As
            Return非法生日" 
   
        End Try 
   
        Dim i As Integer 
   
        For i = 17 To 0 Step
            iSum = iSum + (System.Math.Pow(2, i) Mod 11) * Integer.Parse(cid.Substring(17 - i, 1), System.Globalization.NumberStyles.HexNumber) 
  
            '   
        Next 
   
        If iSum Mod 11 <> 1 Then 
   
            Return非法证号" 
   
        End If 
   
        Dim strSex As String 
   
        If (Integer.Parse(cid.Substring(16, 1)) Mod 2) = 1 Then 
   
            strSex = "男" 
   
        Else 
   
            strSex = "女" 
   
        End If 
   
        Return aCity(Integer.Parse(cid.Substring(0, 2))) & "," & cid.Substring(6, 4) & "-" & cid.Substring(10, 2) & "-" & cid.Substring(12, 2) & "," & strSex 
  
EndFunction

举报

相关推荐

0 条评论