how to validate dates in format MM-DD-YYYY in javascript?


To validate dates in the format MM-DD-YYYY using JavaScript, you can use the following approach:

function isValidDate(dateString) {
  // Regular expression to match the date format MM-DD-YYYY
  const dateRegex = /^\d{2}-\d{2}-\d{4}$/;
  // Check if the input matches the date format
  if (!dateRegex.test(dateString)) {
    return false;
  // Create a new Date object from the input date string
  const dateParts = dateString.split('-');
  const month = parseInt(dateParts[0]);
  const day = parseInt(dateParts[1]);
  const year = parseInt(dateParts[2]);
  const dateObj = new Date(year, month - 1, day);
  // Check if the Date object is valid
  return (dateObj.getMonth() + 1 === month && dateObj.getDate() === day && dateObj.getFullYear() === year);

In this function, we first define a regular expression that matches the date format MM-DD-YYYY. We then use the test() method of the regular expression to check if the input matches the format. If it doesn’t, we return false.

If the input matches the format, we then create a new Date object from the input date string by splitting it into its component parts (month, day, and year) and passing them to the Date constructor. We then check if the Date object is valid by comparing its component parts to the original input. If they match, we return true; otherwise, we return false.

Here’s an example usage of the function:

console.log(isValidDate('02-29-2021')); // Output: false (invalid date)
console.log(isValidDate('02-29-2020')); // Output: true (valid date)
console.log(isValidDate('13-01-2022')); // Output: false (invalid date)
console.log(isValidDate('12-31-2022')); // Output: true (valid date)

Note that this function assumes that the input date is in the MM-DD-YYYY format and that it uses the Gregorian calendar system. If you need to support different date formats or calendar systems, you may need to modify the function accordingly.