Foxtable(狐表)用户栏目专家坐堂 → validPIN函数报错,如何被免?


  共有1673人关注过本帖树形打印复制链接

主题:validPIN函数报错,如何被免?

帅哥哟,离线,有人找我吗?
pc005637
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:12768 威望:0 精华:0 注册:2011/5/29 15:19:00
validPIN函数报错,如何被免?  发帖心情 Post By:2018/4/4 14:51:00 [只看该作者]

validPIN函数报错,如何被免?

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20180404145011.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/4 15:04:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/4 15:06:00 [只看该作者]

或者自己实现此函数

 


public Function CheckIDCard18(ByVal idNumber As String) As Boolean
    Dim n As Long = 0
    If Long.TryParse(idNumber.Remove(17), n) = False OrElse n < Math.Pow(10, 16) OrElse Long.TryParse(idNumber.Replace("x"c, "0"c).Replace("X"c, "0"c), n) = False Then
        Return False
    End If

    Dim address As String = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"
    If address.IndexOf(idNumber.Remove(2)) = -1 Then
        Return False
    End If

    Dim birth As String = idNumber.Substring(6, 8).Insert(6, "-").Insert(4, "-")
    Dim time As DateTime = New DateTime()
    If DateTime.TryParse(birth, time) = False Then
        Return False
    End If

    Dim arrVarifyCode As String() =("1,0,x,9,8,7,6,5,4,3,2").Split(","c)
    Dim Wi As String() =("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(","c)
    Dim Ai As Char() = idNumber.Remove(17).ToCharArray()
    Dim sum As Integer = 0
    For i As Integer = 0 To 17 - 1
        sum += Integer.Parse(Wi(i)) * Integer.Parse(Ai(i).ToString())
    Next

    Dim y As Integer = -1
    Math.DivRem(sum, 11, y)
    If arrVarifyCode(y) <> idNumber.Substring(17, 1).ToLower() Then
        Return False
    End If

    Return True
End Function

 


 回到顶部