日期验证正则表达式

下面提供了三款日期验证正则表达式哦,你可以根据自己的需选择下面三种中期其中一种日期验证方法

  1. */
  2. $arr_date = array(
  3. '2004-06-01',
  4. '2005-0x-10',
  5. '12-12-12',
  6. '2000-12-25 00:10:20',
  7. '2007-12-05'
  8. );
  9. for ($i=0; $i<5; ++$i)
  10. {
  11. $date = $arr_date[$i];
  12. if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
  13. {
  14. echo "日期字符串$date 符合'yyyy-mm-dd'格式:";
  15. echo "$regs[1].$regs[2].$regs[3]<br/><br/>";
  16. }
  17. else
  18. {
  19. echo "<b>日期字符串$date 不符合'yyyy-mm-dd'格式的日期字符串</b><br/><br/>";
  20. }
  21. }
  22. //匹配yyyy-mm-dd
  23. (([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
  24. //2:匹配dd/mm/yyyy 或匹配d/m/yyyy
  25. '/^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|'
  26. .'[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})/((([13578]|1[2])|(0[13578]|1[02])'
  27. .'/((0[1-9]|[12][0-9]|3[01])|([1-9]|[12][0-9]|3[1])))|(((0[469]|11)|([469]|11))'
  28. .'/((0[1-9]|[12][0-9]|30)|([1-9]|[12][0-9]|30)))|'
  29. .'((02|2)/((0[1-9]|[1][0-9]|2[0-8])|([1-9]|[1][0-9]|2[0-8]))'
  30. .')))|((([0-9]{2})((0[48]|[2468][048]|[13579][26])|([48]|[2468][048]|[13579][26]))|'
  31. .'((((0[48])|([48]))|[2468][048]|[3579][26])00))/(02|2)/29)$/';