今天(2018-04-09)在整理正则表达时,有一个关于身份证号码的正则匹配。最简单的不动脑子的匹配方式为:^[1-9]\d{16}[\d|x]$,但是这样很容易伪造一个身份证号来骗过电脑,于是加强版的正则匹配为:
^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
虽然加强版的正则匹配能过滤掉大部分不靠谱的身份证号码,但仍存在漏网之鱼,比如我创造了一个符合它正则规则的号码:123456180011116578(纯属构造)

本文介绍了一种用于验证身份证号码有效性的方法,并提供了一个使用JavaScript编写的验证实例。该方法不仅包括基本的正则表达式匹配,还涵盖了根据身份证号码计算校验位的详细步骤。

1519

被折叠的 条评论
为什么被折叠?



