gerd
9/29/2016 - 2:22 PM

Checks if date string is a valid date.

Checks if date string is a valid date.

 /**
     * @method isDate
     * @param dateStr
     * @returns {Boolean}
     */
    isDate : function(dateStr) {
        var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
        var matchArray = dateStr.match(datePat); // is the format ok?
        if (matchArray === null) {
            return false;
        }
        month = matchArray[1]; // p@rse date into variables
        day = matchArray[3];
        year = matchArray[5];
        if (month < 1 || month > 12) { // check month range
            return false;
        }
        if (day < 1 || day > 31) {
            return false;
        }
        if ((month === 4 || month === 6 || month === 9 || month === 11)
                && day === 31) {
            return false;
        }
        if (month === 2) { // check for february 29th
            var isleap = (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0));
            if (day > 29 || (day === 29 && !isleap)) {
                return false;
            }
        }
        return true; // date is valid
    }