Kiểm tra Date hợp lệ bằng cách xem getMonth() có trả về NaN không. Nếu !isNaN(date.getMonth()) thì hợp lệ.
Ví dụ
<!DOCTYPE html>
<html>
<body>
<script>
var date1 = new Date("2018/1/1");
if (!isNaN(date1.getMonth())) {
document.write("Hợp lệ date1: " + date1);
} else {
document.write("<br>Không hợp lệ date1");
}
var date2 = new Date("20181/1"); // Chuỗi sai định dạng
if (!isNaN(date2.getMonth())) {
document.write("<br> Hợp lệ date2: " + date2);
} else {
document.write("<br>Không hợp lệ date2");
}
</script>
</body>
</html>
Kết quả
Hợp lệ date1: Thứ 2, 1 Thg 1 2018 00:00:00 GMT+0530 Hợp lệ date2: Thứ 2, 1 Thg 1 20181 00:00:00 GMT+0530
Lưu ý: JavaScript khá linh hoạt khi parse chuỗi, có thể cho kết quả không mong muốn. Nên dùng thư viện như moment.js hoặc date-fns cho validation chặt chẽ.