How To Validate Dd-Mm-Yyyy Format Date In Javascript

Validating user input is a crucial part of any web application, and date fields are no exception. In this blog post, we’ll discuss how to validate a date in the DD-MM-YYYY format using JavaScript.

Step 1: Create a Validation Function

First, let’s create a function called isValidDate that will take a date string as an argument and return true if the date is valid and false otherwise. The function should check if the date string matches the DD-MM-YYYY format and validate the day, month, and year values.

function isValidDate(dateString) {
  // Check if dateString matches the DD-MM-YYYY format
  const regex = /^(0[1-9]|[12][0-9]|3[01])[-](0[1-9]|1[012])[-](19|20)\d\d$/;
  if (!regex.test(dateString)) {
    return false;
  }

  // Parse the date parts
  const parts = dateString.split('-');
  const day = parseInt(parts[0], 10);
  const month = parseInt(parts[1], 10);
  const year = parseInt(parts[2], 10);

  // Check the ranges of month and year values
  if (year < 1900 || year > 2100 || month === 0 || month > 12) {
    return false;
  }

  // Calculate the number of days in the given month
  const monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) {
    // Leap year
    monthLength[1] = 29;
  }

  // Check the range of the day value
  return day > 0 && day <= monthLength[month - 1];
}

Step 2: Use the Validation Function

Now that we have our isValidDate function, we can use it to validate user input. For example, if we have an input field with the ID “dateInput,” we can validate its value as follows:

const dateInput = document.getElementById('dateInput');
const dateString = dateInput.value;

if (isValidDate(dateString)) {
  console.log('The date is valid.');
} else {
  console.log('The date is invalid.');
}

Conclusion

In this blog post, we demonstrated how to create a simple JavaScript function to validate a date in the DD-MM-YYYY format. This function can be easily integrated into any web application to ensure that user-entered dates are valid before they are processed or stored.