28 March, 2013

How to check date is valid or not in Javascript

Features:
 
  • Date format: MM/DD/YYYY
  • Text box control values can be validated as correct date
  • Month can be entered compulsory with two digits either 0 or 1 as first digit. So possible invalid entries are from 13 to 19.
  • Date can be entered compulsory with two digits either 0,1,2 or 3 as first digit. So possible invalid entries are from 32 to 39.
  • Entry will be validated on blur event. In case of invalid date then blank TextBox.
  • It will also validate for Leap years for Feb month. Also, it will validate 31 date for April, June, Sep & Nov months.

JavaScript Function:

function isDate(txtDate) {
    var currVal = txtDate.val();
    if (currVal == '') {
        txtDate.val('');
        return false;
    }
 
    //Declare Regex 
    var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var dtArray = currVal.match(rxDatePattern); // is format OK?
 
    if (dtArray == null) {
        txtDate.val('');
        return false;
    }
 
    //Checks for mm/dd/yyyy format.
    dtMonth = dtArray[1];
    dtDay = dtArray[3];
    dtYear = dtArray[5];
 
    if (dtMonth < 1 || dtMonth > 12) {
        txtDate.val('');
        return false;
    }
    else if (dtDay < 1 || dtDay > 31) {
        txtDate.val('');
        return false;
    }
    else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) {
        txtDate.val('');
        return false;
    }
    else if (dtMonth == 2) {
        var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
        if (dtDay > 29 || (dtDay == 29 && !isleap)) {
            txtDate.val('');
            return false;
        }
    }
    return true;
}

No comments:

Post a Comment