숫자형 날짜 포맷을 확인하는 함수.
파라미터는 문자타입으로 ( "20190614" ) 받는다.
아래 링크의 답변을 참고하여 수정
function isDateFormat(val) {
var regex_date = /^\d{4}\d{1,2}\d{1,2}$/;
// Check the pattern
if (!regex_date.test(val)) {
return false;
}
var year = val[0] + val[1] + val[2] + val[3];
var month = val[4] + val[5];
var day = val[6] + val[7];
var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
// Check the ranges of month and year
if (year < 1000 || year > 3000 || month == 0 || month > 12) {
return false;
}
// Adjust for leap years
if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
monthLength[1] = 29;
}
// Check the range of the day
return day > 0 && day <= monthLength[month - 1];
}

