以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 有关validPIN函数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116674) |
-- 作者:www111998 -- 发布时间:2018/3/29 10:45:00 -- 有关validPIN函数 狐表的validPIN的函数验证身份信息是不是权威的,为什么一个身份证号码在不同的电脑下验证结果不一样 ,难道是电脑设置的问题 求助有关validPIN函数的详解
|
-- 作者:www111998 -- 发布时间:2018/3/29 10:48:00 -- 一个身份证号码,在试用版的代码下可以验证, 在开发版的代码下不能验证 同一代码下,其他的几百个身份证号码都能验证,就一个不能验证,
|
-- 作者:有点甜 -- 发布时间:2018/3/29 10:50:00 -- validPIN 只是简单的校验而已,有可能不准确,判断逻辑类似这样 https://jingyan.baidu.com/article/d5a880eb974b6513f147ccec.html
一些合法的身份证,通过此函数校验,有可能误报不正确的情况。
但是,你说的【不同电脑下执行得到不同结果】,这个是不可能的。
|
-- 作者:www111998 -- 发布时间:2018/3/29 11:05:00 -- 看样子又是语法错误的问题,请教validPIN函数的使用方法,以及语法 |
-- 作者:有点甜 -- 发布时间:2018/3/29 11:06:00 --
http://www.foxtable.com/webhelp/scr/2624.htm
|
-- 作者:www111998 -- 发布时间:2018/3/29 11:15:00 -- If e.DataCol.Name = "身份证号码" Then Dim dr As DataRow = e.DataRow If ValidPIN(dr("身份证号码")) = False Then \'If dr.IsNull("身份证号码") Then dr("出生年月") = Nothing dr("年龄") = Nothing dr("性别") = Nothing Else dr("出生年月") = ReadBirthday(dr("身份证号码")) dr("性别") = ReadSex(dr("身份证号码")) Dim t As TimeSpan = today - CDate(dr("出生年月")) dr("年龄") = Math.Round(t.TotalDays / 365.2422,2) \' End If End If End If 这样下不能显示
|
-- 作者:www111998 -- 发布时间:2018/3/29 11:17:00 -- If e.DataCol.Name = "身份证号码" Then Dim dr As DataRow = e.DataRow If ValidPIN(dr("身份证号码")) = False Then If dr.IsNull("身份证号码") Then dr("出生年月") = Nothing dr("年龄") = Nothing dr("性别") = Nothing Else dr("出生年月") = ReadBirthday(dr("身份证号码")) dr("性别") = ReadSex(dr("身份证号码")) Dim t As TimeSpan = today - CDate(dr("出生年月")) dr("年龄") = Math.Round(t.TotalDays / 365.2422,2) End If End If End If 这样下能够显示各种信息,但不验证身份证号码了
|
-- 作者:有点甜 -- 发布时间:2018/3/29 11:20:00 -- If e.DataCol.Name = "身份证号码" Then Dim dr As DataRow = e.DataRow If dr.IsNull("身份证号码") Then dr("出生年月") = Nothing dr("年龄") = Nothing dr("性别") = Nothing Else If ValidPIN(dr("身份证号码")) = False Then msgbox("身份证输入不正确") Else dr("出生年月") = ReadBirthday(dr("身份证号码")) dr("性别") = ReadSex(dr("身份证号码")) Dim t As TimeSpan = today - CDate(dr("出生年月")) dr("年龄") = Math.Round(t.TotalDays / 365.2422,2) End If End If End If |
-- 作者:www111998 -- 发布时间:2018/3/29 11:28:00 -- 还是显示不了,但是明白了,也就是说这个身份证号码通过不了验证,ValidPIN认为这样号码是错的,但是不验证的情况下也是可以识别性别,出生日期和年龄等信息的,是这样的吗? |
-- 作者:有点甜 -- 发布时间:2018/3/29 11:31:00 -- 以下是引用www111998在2018/3/29 11:28:00的发言:
还是显示不了,但是明白了,也就是说这个身份证号码通过不了验证,ValidPIN认为这样号码是错的,但是不验证的情况下也是可以识别性别,出生日期和年龄等信息的,是这样的吗?
身份证号码贴出来看看,有可能是误报。
提取出生日期、年龄、性别等信息,是从固定位置提取的,所以这个没问题。
ValidPIN校验处理你提取的那些信息,还有别的一些校验的。 |