入力された文字が、日付型(YYYY/MM/DD)であるかチェックをし、
日付型なら true を それ以外なら false を返す。
/*===============================================================
chk_input_date(val) - yyyy/mm/dd形式かチェック(JavaScript)
val : チェック対象文字列
return true : OK
false: NG
===============================================================*/
function chk_input_date(val){
yy = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 29);
wYear = val.substr(0, 4);
wMonth = wMChk = val.substr(5, 2);
wDay = val.substr(8, 2);
// 年の範囲検証
if (!(wYear >= 1900 && wYear <= 2100)) {
return false;
}
// 月の範囲検証
if (!(wMonth >= 1 && wMonth <= 12)) {
return false;
}
// 閏年の判定
if (!(wYear % 4) && wMonth == 2) {
wMChk = 12; // 閏年テーブル
if (!(wYear % 100)) {
if (wYear % 400) {
wMChk = 1; // non閏年テーブル
}
}
} else {
wMChk--;
}
// 日の範囲検証
if (!(1 <= wDay && yy[wMChk] >= wDay)) {
return false;
}
return true;
}