//Me当初写的一个Javascript的函数,改写一下就是Java的 //格式为yyyy-MM-dd HH24 function checkTime(){ var dayFlag=true; var maxDays=31; var msg; var re = new RegExp("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2})","ig"); if(!re.test(match.endtime.value)){ dayFlag=false; alert("日期你输错了"); match.endtime.focus(); } else{ var yy=RegExp.$1; var mm=RegExp.$2; var dd=RegExp.$3; var hh=RegExp.$4; if ((yy<2000)||(yy>2100)){ dayFlag=false; alert("日期年份错误!可能你输错了...\n年份限制2000-2099"); match.endtime.focus(); } else if ((mm<1)||(mm>12)){ dayFlag=false; alert("日期月份错误"); match.endtime.focus(); } else { if (mm==4||mm==6||mm==9||mm==11) maxDays = 30; else if(mm==2){ if ((yy%4)>0) maxDays=28; else if((yy%100)==0 && yy%400>0) maxDays=28; else maxDays=29; } if ((dd<1)||(dd>maxDays)){ dayFlag=false; alert('日期的'+mm+'月没有'+dd+'日'); match.endtime.focus(); } if ((hh<0)||(hh>23)){ dayFlag=false; alert('日期中的小时超过0-23的范围'); } } } return (dayFlag); }
//格式为yyyy-MM-dd HH24
function checkTime(){
var dayFlag=true;
var maxDays=31;
var msg;
var re = new RegExp("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2})","ig");
if(!re.test(match.endtime.value)){
dayFlag=false;
alert("日期你输错了");
match.endtime.focus();
}
else{
var yy=RegExp.$1;
var mm=RegExp.$2;
var dd=RegExp.$3;
var hh=RegExp.$4;
if ((yy<2000)||(yy>2100)){
dayFlag=false;
alert("日期年份错误!可能你输错了...\n年份限制2000-2099");
match.endtime.focus();
}
else if ((mm<1)||(mm>12)){
dayFlag=false;
alert("日期月份错误");
match.endtime.focus();
}
else
{
if (mm==4||mm==6||mm==9||mm==11)
maxDays = 30;
else if(mm==2){
if ((yy%4)>0)
maxDays=28;
else if((yy%100)==0 && yy%400>0)
maxDays=28;
else
maxDays=29;
}
if ((dd<1)||(dd>maxDays)){
dayFlag=false;
alert('日期的'+mm+'月没有'+dd+'日');
match.endtime.focus();
}
if ((hh<0)||(hh>23)){
dayFlag=false;
alert('日期中的小时超过0-23的范围');
}
}
}
return (dayFlag);
}
^[\d]{4}-[\d]{2}-[0-2]{1}[\d]{1}$;
如果为闰年^[\d]{4}-[\d]{2}-[0-2]{1}[0-8]{1}$;
Pattern.matches("[\\d]{4}-[\\d]{2}-[0-2]{1}[\\d]{1}$","2003-01-30")返回boolean
如果为TRUE 说明日期合法