18位身份证:
先用这个表达式取出出生年份
\d{6}(\d{4})\d{8}
$1就是四位的年份,比如1986
在用这个表达式判断是不是在1900-2000之间
(19\d{2}|2000)
15位身份证,这种身份证1900和2000是区分不出来的,这种身份证年份只用后两位表示
先用这个表达式取出出生年份
\d{6}(\d{2})\d{7}
$1就是二位的年份,比如86
在用这个表达式判断是不是在1900-2000之间
\d{2}
这是主要的方法,细节就不写啦,呵呵,我还有活,祝你好运
\d{15}|\d{18}
这个只能验证位数,至于出生日期,很难判断
楼主能不能将出生日期正确的标准定义一下
我觉得单用正则似乎无法判断出生日期的正确性
期待高人