概述
CSDN话题挑战赛第2期
参赛话题:学习笔记
二代身份证正则表达式
- 二代身份证号码解释
- 二代身份证地址码
- 身份证正则表达式
二代身份证号码解释
1、前六位是地址码
●第一位、第二位表示省或直辖市或自治区;
●第三位、第四位代表市辖区;
●第五位、第六位代表区、县、市等
2、中间8位出生年月日
3、后4位
●3位顺序码
●1位校验位组成
二代身份证地址码
华北地区:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000
东北地区: 辽宁省|210000,吉林省|220000,黑龙江省|230000
华东地区: 上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000
华中地区: 河南省|410000,湖北省|420000,湖南省|430000
华南地区:广东省|440000,广西壮族自治区|450000,海南省|460000
西南地区:重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000
西北地区: 陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000
特别地区:台湾省|710000,香港特别行政区|810000,澳门特别行政区|820000
身份证正则表达式
表达式一:
第1位数字范围是1至8:
[1-8]
第2位数字范围是0至7:
[0-7]
第3至第6位:
[0-9]{4}
第7至10位表示年,范围在1900年-2099年:
(19|20)[0-9]{2}
第11至12位(月):
((0[1-9])|(10|11|12))
第13至14位(日):
(([0-2][1-9])|10|20|30|31)
第15至18位:
[0-9]{3}[0-9Xx]
表达式一
[1-8][1-7][0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]
表达式二(列举前两位所有的组合):
(11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82)[0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]
表达式三(在表达式二的基础上优化):
(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|71|8[1-2])[0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]
注意点:
1、前两位数字依旧可以做范围的缩减,比如第1位数字是1,第2位数字的范围只会是1-5
2、第2位数字只有重庆是0,也就是说只有“50”这个组合,这里也可以优化
3、第3至6位,由于数量太大,所有这里直接给了0-9随机
4、前六位与省市对应关系
最后
以上就是诚心可乐为你收集整理的【正则】二代身份证正则表达式二代身份证号码解释二代身份证地址码身份证正则表达式的全部内容,希望文章能够帮你解决【正则】二代身份证正则表达式二代身份证号码解释二代身份证地址码身份证正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复