最近工作中遇到前端写身份证的校验,查了下网上的正则表达式直接套用发现会有些许bug,于是拆解了正则表达式,便于自定义校验
18位身份证的结构
/^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1|2][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
6位地址编码>|< 4位年份码 1900-2029 >|< 2位月份码01-12 >|< 2位日子码01-31 >|<3位顺序码>|<1位校验码>
一般来说出现校验失败主要是年份校验失败,修改年份码对应的正则表达式就可以了