Untitled
unknown
plain_text
10 months ago
1.1 kB
7
Indexable
function isValidDate(str) {
// STRING FORMAT yyyy-mm-dd
if (str == "" || str == null || str.length != 10) {
return false;
}
// m[1] is year 'YYYY' * m[2] is month 'MM' * m[3] is day 'DD'
var m = str.match(/(\d{4})-(\d{2})-(\d{2})/);
// STR IS NOT FIT m IS NOT OBJECT
if (m === null || typeof m !== "object") {
return false;
}
// CHECK m TYPE
if (typeof m !== "object" && m !== null && m.size !== 3) {
return false;
}
var ret = true; //RETURN VALUE
var thisYear = new Date().getFullYear(); //YEAR NOW
var minYear = 1999; //MIN YEAR
// YEAR CHECK
if (m[1].length < 4 || m[1] < minYear || m[1] > thisYear) {
ret = false;
}
// MONTH CHECK
if (m[2].length < 2 || m[2] < 1 || m[2] > 12) {
ret = false;
}
// DAY CHECK
if (
m[3].length < 2 ||
m[3] < 1 ||
(["04", "06", "09", "11"].indexOf(m[2]) > -1 && m[3] > 30) ||
m[3] > 31
) {
ret = false;
}
// FEBRUARY CHECK
if ((m[2] == 2 && m[3] > 29) || (m[2] == 2 && m[3] > 28 && m[1] % 4 != 0)) {
ret = false;
}
return ret;
}Editor is loading...
Leave a Comment