导致数据库跑任务出现错误(任务根据日期来计算状态的,由于数据量比较大,都做成任务夜里跑),为了避免再出现此类的错误,所以增加了一个验证日期有效性的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]|1d|2[0-8]))|(((?:(dd(?: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>