javascript 验证日期的函数

  导致数据库跑任务出现错误(任务根据日期来计算状态的,由于数据量比较大,都做成任务夜里跑),为了避免再出现此类的错误,所以增加了一个验证日期有效性的javascript方法。

  本方法能够有效的验证闰年,支持的日期格式有:2009-01-01、2009/01/01两种格式。

  javascript代码

  

复制代码 代码如下:

  //判断日期是否合法

  function IsDate(oTextbox) {

  var regex = new RegExp("^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|([0-9]{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$");

  var dateValue = oTextbox.value;

  if (!regex.test(dateValue)) {

  alert("日期有误!");

  dateValue = "";

  this.focus();

  return;

  }

  }

  使用测试

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml" >

  <head>

  <title></title>

  <script type="text/javascript" src="jQuery/JScript1.js"></script>

  <script type="text/javascript" src="jQuery/jquery-vsdoc.js"></script>

  </head>

  <body>

  <input type="text" id="sDate" />

  <script type="text/javascript">

  $("#sDate").blur(function() {IsDate($(this)[0]);})

  </script>

  </body>

  </html>