最近这个项目中有几个需要录入日期的地方,开始由于没有对这些地方进行有效性验证,结果用户录入的日期有好多非法日期,诸如什么2007-2-29,还有2005-2-30等错误日期;导致数据库跑任务出现错误(任务根据日期来计算状态的,由于数据量比较大,都做成任务夜里跑),为了避免再出现此类的错误,所以增加了一个验证日期有效性的javascript方法。
本方法能够有效的验证闰年,支持的日期格式有:2009-01-01、2009/01/01两种格式。
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 ;
}
}
使用测试
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 >
由于刚开始学习jQuery,就在这里学以致用了
< 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 >
转载于:https://www.cnblogs.com/yohop/archive/2009/09/11/1565029.html