0

How to validate date in both format (mm-dd-yy and mm/dd/yy), currently the below codes only validates (mm-dd-yy)

function isValidDate(dateString) {
    if (!/^\d{2}\-\d{2}\-\d{2}$/.test(dateString)) {
        return false;
    }
    var parts = dateString.split("-");
    var day = parseInt(parts[1], 10);
    var month = parseInt(parts[0], 10);
    if (month == 0 || 12 < month) {
        return false;
    }
    var monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    return (0 < day && day <= monthLength[month - 1]);
}
Salman A
  • 262,204
  • 82
  • 430
  • 521
govindak
  • 388
  • 5
  • 21

2 Answers2

0

change the regex to

function isValidDate(dateString) {
    // use - or / as the seprator
    if (!/^\d{2}([-\/])\d{2}\1\d{2}$/.test(dateString)) {
        return false;
    }

    //split using - or /
    var parts = dateString.split(/[-\/]/);
    var day = parseInt(parts[1], 10);
    var month = parseInt(parts[0], 10);
    if (month == 0 || 12 < month) {
        return false;
    }

    var monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    return (0 < day && day <= monthLength[month - 1]);
}
Arun P Johny
  • 384,651
  • 66
  • 527
  • 531
0

This pattern will validate date format(mm/dd/yy)

private static final String DATE_PATTERN = 
          "((0?[1-9]|1[012])/0?[1-9]|[12][0-9]|3[01])/(\\d\\d))";
Santosh Pandey
  • 190
  • 1
  • 1
  • 10