日期:2014-05-17  浏览次数:20413 次

请问验证身份证的正则表达式
验证身份证的正则表达式包括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位的身份证,并且包含生日和校验位的验证。
//如果有兴趣,还可以…

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