function validateDate(date) { try { var shortMonths = [4, 6, 9, 11]; var day = 1; var month = 1; var year = 1; if(date.length === 10) { var splitString = date.split("."); for(var i = 0; i < splitString.length; i++) { var number = parseInt(splitString[i], 10); switch(i) { case 0: day = number; break; case 1: month = number; break; default: year = number; break; } } if(month > 0 && month < 13) { if(month === 2) { var isLeapYear = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; if(isLeapYear) { return day > 0 && day < 30; } else { return day > 0 && day < 29; } } if(shortMonths.includes(month)) { return day > 0 && day < 31; } else { return day > 0 && day < 32; } } return false; } return false; } catch (exception) { console.log("Fehler bei validateDate: " + exception); return false; } } function doValidation(elementToValidate) { var obj = $(elementToValidate); var isValid = validateDate(obj.val()); obj.css("color", (isValid ? "#555" : "red")); return isValid; } function validateTime(time) { try { var numberString = time.replace("[^0-9]", ""); if (numberString.length < 3) { if (numberString.length < 2) { numberString = "0" + numberString; } while (numberString.length < 4) { numberString = numberString + "0"; } } else { while (numberString.length < 4) { numberString = "0" + numberString; } } if (numberString.length > 4) { numberString = numberString.substring(0, 5); } var hours = parseInt(numberString.substring(0, 2), 10); var minutes = parseInt(numberString.substring(3, 5), 10); return Number.isInteger(hours) && Number.isInteger(minutes) && hours >= 0 && hours < 25 && minutes >= 0 && minutes < 60; } catch (exception) { console.log("Fehler bei validateTime: " + exception); return false; } } function doTimeValidation(elementToValidate) { console.log("Rufe doTimeValidation auf..."); var obj = $(elementToValidate); var timeString = obj.val(); if (timeString.length === 0) { timeString = "0000"; } var isValid = validateTime(timeString); obj.css("color", (isValid ? "#555" : "red")); return isValid; }