主题:  如果限制身份证号码登记一次

helmet

职务:版主
等级:4
金币:10.0
发贴:1559
#162002/9/22 15:02:06
没法限制,你无法判断末尾的数字。总不能末尾的从0-9都禁止吧?!



云中游

职务:普通成员
等级:2
金币:1.0
发贴:397
#172002/9/22 15:54:03
以前的:330204 790616503
现在的:330204197906165036

那可以这样限制啊,先判断输入的身份证是15位还是18位,如果是15位,分别提取身份证的1-6位和7-15位赋值到两个变量,然后和数据库进行进行比较,在比较数据库中的每条记录前也判断该记录是15位和18位,如果数据库中的该条记录是15位,就提取该记录的1-6位和7-15位和输入的1-6位和7-15位进行比较,如果数据库中的该条记录是18位,就提取1-6位和9-17位和输入的1-6位和7-15位进行比较,如果相同警告,相反输入的身份证号码是18位的,也用同样的方法就可以限制,只是我代码不会写,谁能帮我一下吗?



云中游

职务:普通成员
等级:2
金币:1.0
发贴:397
#182002/9/22 15:54:04
以前的:330204 790616503
现在的:330204197906165036

那可以这样限制啊,先判断输入的身份证是15位还是18位,如果是15位,分别提取身份证的1-6位和7-15位赋值到两个变量,然后和数据库进行进行比较,在比较数据库中的每条记录前也判断该记录是15位和18位,如果数据库中的该条记录是15位,就提取该记录的1-6位和7-15位和输入的1-6位和7-15位进行比较,如果数据库中的该条记录是18位,就提取1-6位和9-17位和输入的1-6位和7-15位进行比较,如果相同警告,相反输入的身份证号码是18位的,也用同样的方法就可以限制,只是我代码不会写,谁能帮我一下吗?



helmet

职务:版主
等级:4
金币:10.0
发贴:1559
#192002/9/22 17:50:19
你这样校验,就不管最后一位了么?

不过我也不知道最后一位是干嘛的,是不是随机的。



5D荣誉版主

职务:普通成员
等级:2
金币:10.0
发贴:658
#202002/9/23 17:02:41
我不太清楚你为什么要写这样难的程序,
个人觉的没有什么用。
如果实在要用,
连到公安部的身份证数据库里面(不太可能)
看有没有,
再看看自己的数据库里有没有就行了。



大雪糕

职务:普通成员
等级:2
金币:10.0
发贴:579
#212002/9/23 19:43:41
不知道最后一位是不是不确定的,不是的话就可行得通



云中游

职务:普通成员
等级:2
金币:1.0
发贴:397
#222002/9/23 20:32:49
以前的15位身份证号码:330204 790616503
现在的18位身份证号码:330204197906165036

我们现在把15位的和18位分成都分成两个变量,15位的取1-6位和7-15位,18位的取1-6位和9-17位,15位的1-6位和18位的1-6位比较,15位的7-15位和18位的9-17位比较,至于18位的7-8位和最后一位我们都不要管它是什么,不用去看它,不知这种代码如何写?



今晚在线

职务:普通成员
等级:3
金币:1.0
发贴:761
#232002/9/24 0:46:05
其实如果只是这两个变量按照你说的那样去比较也不是很难,要用到VBS字符处理函数

left 和 mid ,但是你的想法大概是要和数据库里面的内容去比较吧?

怎么样在SQL直接截取字段的指定几位数字恐怕不那么简单,想来想去我的建议就是

只好用在条件查询时使用模糊查询like了,而且每次输入后的验证都要进行至少两次

以上数据库全面检索,效率会很低的呀!



云中游

职务:普通成员
等级:2
金币:1.0
发贴:397
#242002/9/24 19:59:18
怎么用模糊查询like,从当中抽取字符的啊



今晚在线

职务:普通成员
等级:3
金币:1.0
发贴:761
#252002/9/24 23:40:28
stephen在上个帖子中说
引用:
怎么用模糊查询like,从当中抽取字符的啊


就像一些简单模糊查询一样啊
where 字段 like '%"&截取后的身份证号码变量&"%'