案例如下:
//日期格式判斷
function lo_isDatePart(dateStr) {
var parts;
if (dateStr.indexOf("/") > -1) {
parts = dateStr.split('/');
} else {
return false;
}
if (parts.length < 3) {
//日期部分不允许缺少年、月、日中的任何一项
return false;
}
for (i = 0; i < 3; i++) {
//如果构成日期的某个部分不是数字,则返回false
if (isNaN(parts[i])) {
return false;
}
}
y = parts[0]; //年
m = parts[1]; //月
d = parts[2]; //日
if (y > 3000 || y < 2011) {
return false;
}
var smonth = "01,02,03,04,05,06,07,08,09,10,11,12";
var asmonth = smonth.split(',');
var asm = 0;
for (q = 0; q < asmonth.length; q++) {
if (m == asmonth[q]) {
asm = asm + 1;
}
}
if (asm == 0) {
return false;
}
var sday = "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
var asday = sday.split(',');
var asd = 0;
for (q = 0; q < asday.length; q++) {
if (d == asday[q]) {
asd = asd + 1;
}
}
if (asd == 0) {
return false;
}
switch (d) {
case 29:
if (m == "02") {
//如果是2月份
if ((y / 100) * 100 == y && (y / 400) * 400 != y) {
//如果年份能被100整除但不能被400整除 (即闰年)
} else {
return false;
}
}
break;
case 30:
if (m == "02") {
//2月没有30日
return false;
}
break;
case 31:
if (m == "02" || m == "04" || m == "06" || m == "09" || m == "11") {
//2、4、6、9、11月没有31日
return false;
}
break;
default:
}
return true;
}
/***********************************************************************
* 判断一个字符串是否为合法的时间格式:HH:MM
*/
function lo_isTimePart(timeStr) {
var parts;
parts = timeStr.split(':');
if (parts.length < 1) {
//日期部分不允许缺少小时、分钟中的任何一项
return false;
}
for (i = 0; i < parts.length; i++) {
//如果构成时间的某个部分不是数字,则返回false
if (isNaN(parts[i])) {
return false;
}
}
h = parts[0]; //小時
m = parts[1]; //分
if (h < 0 || h > 23) {
//限制小时的范围
return false;
}
if (m < 0 || m > 59) {
//限制分钟的范围
return false;
}
return true;
}