黑马程序员技术交流社区
标题:
如何检验用户输入的身份证号码是合法的?
[打印本页]
作者:
肖云
时间:
2012-6-10 01:37
标题:
如何检验用户输入的身份证号码是合法的?
让用户输入身份证号码,如何检验是合法的.
强制转换为int类型就会出错,因为超出了int数据范围.
作者:
王继光
时间:
2012-6-10 09:03
身份证号码,一般都是 18位 整数, 这样的话, 就目前的 整数类型, 我们要 18 位有效数字 的话 , 好像除了 decimal 其余的数都没有这个精度。。
所以,我觉得不应该把 身份证号码考虑为 整数 类型, 而应该考虑为字符串类型,, 然后,我们可以把 此 字符串分为 3部分, 分别检验 ;;
前2部分 必须能转化为 整数类型,, 最后一部分的 最后一位数 允许 为X,, 这样应该就能解决你的问题了。
作者:
钟广雄
时间:
2012-6-10 09:40
{:soso_e136:}不用把十八位数字转换成int呀,
判断长度,直接判断字符长度 string.length
分别想要判断地区 、出生年月日、还有那个啥排序的、男的女的,
就用string的相关函数截取string部分再转换成int进行判断
作者:
王国文
时间:
2012-6-10 09:45
你身份证都是用string类型,还有手机号码也是 ,int是9位,身份证转成int 对比没有实际意思
作者:
孙毅
时间:
2012-6-10 09:45
本帖最后由 孙毅 于 2012-6-10 09:47 编辑
身份证的数据类型使用字符串即可,对它没有计算操作不必转换为int
如何检验是否合法,这里可以使用正则表达式,例(js):
<script type="text/javascript">
window.onload = function () {
var regId = /\d{17}[\d|X]|\d{15}/;
if (regId.test("身份证号")) {
alert("验证成功");
}
else {
alert("验证失败");
}
}
</script>
具体元字符含义到网上查一下相关解释
作者:
牛景亮
时间:
2012-6-10 10:17
身份证号一般都是字符串类型,
验证匹配的话,用正则表达式
作者:
李朋霏
时间:
2012-7-16 23:21
用正则表达式 ^\d[0,9]{18}$
作者:
李朋霏
时间:
2012-7-17 00:08
上面的有误,用这个:^d{17}[\d|X]|\d{15}$
作者:
肖琦
时间:
2012-7-17 08:33
同样是讨论身份证号码的
链接上是另一个帖子的,上面有讨论过;
其实搞清楚身份证的验证,就是要了解身份证的组成,以及效验码的算法,以上帖子都有说过,可以参考。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2