案例如下:
//日期格式判斷
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) {
return false;
}
var smonth="01,02,03,04,05,06,07,08,09,10,11,12";
if (smonth.indexOf(m) == -1) {
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";
if (sday.indexOf(d) == -1) {
return false;
}
switch (d) {
case 29:
if (m == "02") {
//如果是2月份
if ((y / 100) * 100 == y && (y / 400) * 400 != y) {
//如果年份能被100整除但不能被400整除 (即閏年)
} else {
return false;
} www.aiwalls.com
}
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;
}
摘自:先知的程序