"[1-9]\\d{13,16}[\\dxX]"
没有更细腻的划分了 ,太细腻就太麻烦了。。。还得考虑中间的日期。后面的数字组成,前面开头的地区不同。。
身份证号码的组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码,作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
"[1-9]\\d{13,16}[\\dxX]"
解释下这个简单的正则:开头不能是0的数字.后面可以是13-16位数字。最后面一个可以是数字,也可以是大小写的X。组合起来就是15-18位的身份证号码了。 |