当前位置: 代码迷 >> ASP.NET >> 请教验证身份证的正则表达式
  详细解决方案

请教验证身份证的正则表达式

热度:1266   发布时间:2013-02-25 00:00:00.0
请问验证身份证的正则表达式
验证身份证的正则表达式包括15,18 位的请问
该正则表达式该如何写

------解决方案--------------------------------------------------------
C# code
  //身份证正则表达式(15位)      isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;         //身份证正则表达式(18位)         isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
------解决方案--------------------------------------------------------
加个竖杠不就好了。。。晕
------解决方案--------------------------------------------------------
"^\d{15}|\d{18}$"
------解决方案--------------------------------------------------------
探讨
复杂一点应该这么写

C# code
1、简单的正则表达式:

(1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card)
(2)preg_match("/^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/",$id_card)
(3)preg_match("/(^\d{15}$/)|(\d{17}(?:\d|x|X)$/),$id_card)

2、复杂并且严格一些的验证:

//这个可以验证15位和18位的身份证,并且包含生日和校验位的验证。
//如果有兴趣,还可以…

------解决方案--------------------------------------------------------
收藏
------解决方案--------------------------------------------------------