Validar una fecha en JavaScript

  1. Validar fecha con la biblioteca moment.js en JavaScript
  2. Validar la fecha usando expresiones regulares en JavaScript
  3. Validar la fecha con el método Date.parse() en JavaScript

Validar una fecha se vuelve importante para validar fechas en JavaScript porque varias personas en diferentes ubicaciones siguen diferentes formatos al ingresar fechas. Tenemos que seguir un formato particular al validar las fechas en nuestra aplicación web para que luego nos sea más fácil trabajar con la fecha.

Este artículo presentará cómo validar la fecha en formato mm/dd/yy en JavaScript.

Validar fecha con la biblioteca moment.js en JavaScript

La biblioteca moment.js es la mejor y más sencilla forma de validar y formatear fechas y horas en JavaScript. Usaremos esta biblioteca para validar y mostrar fechas en JavaScript. Para usar esta biblioteca, primero tenemos que descargarla usando el siguiente comando.

npm install -g moment --save 

Se instalará un momento en su sistema. Entonces podemos usar directamente el método moment() disponible en la biblioteca moment.js. A continuación se muestra el código para validar una fecha con moment.js en JavaScript.

import * as moment from 'moment';

let result = moment("05/22/12", 'MM/DD/YY',true).isValid();
console.log(result)

Producción:

true

La función moment toma tres parámetros como entrada; el primero es la fecha de entrada que queremos validar, el segundo es el formato que queremos que siga nuestra fecha y el último parámetro es opcional; si se establece en true, utilizará el análisis estricto. El análisis estricto requiere que el formato y la entrada coincidan exactamente, incluidos los delimitadores. Por último, usamos la función isValid() para comprobar si la fecha de entrada es válida o no y devuelve un valor booleano de true si la fecha de entrada coincide con el formato dd/mm/yy y false si la fecha de entrada no coincide con el formato especificado.

Validar la fecha usando expresiones regulares en JavaScript

Expresión regular es una excelente forma de validar la fecha. El único problema al que se enfrentan muchas personas cuando se trata de expresiones regulares es la dificultad para comprenderlas, ya que contienen varios símbolos y números. Cada símbolo o expresión de una expresión regular tiene su propio significado. Usando estas expresiones, podemos validar la fecha en formato dd/mm/yy en JavaScript.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1 id="message"></h1>
    <script>
      
      var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[1-9]|2[1-9])$/;
        var testDate = "03/17/21"
        if (date_regex.test(testDate)) {
            document.getElementById("message").innerHTML = "Date follows dd/mm/yy format";
        }
        else{
          document.getElementById("message").innerHTML = "Invalid date format";
        }

    </script>
  </body>
</html>

Salida en el navegador:

Date follows dd/mm/yy format

La expresión regular /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[1-9]|2[1-9])$/tiene 3 grupos. El primer grupo representa el mes, el segundo grupo representa el día y el tercer grupo representa los 2 últimos dígitos del año. Dondequiera que vea una barra diagonal /, representa el comienzo del grupo y una barra invertida \ representa el final del grupo.

Hay 12 meses en un año. De modo que hay dos posibilidades a la hora de seleccionar un mes, o puede empezar con 0 seguido de un número o con 1 seguido del número 1 o 2. El mismo proceso es similar para otros grupos. El \d en el segundo grupo representa cualquier dígito entre 0 a 9. También puede crear sus expresiones regulares para validar fechas.

Luego almacenamos esta expresión regular en la variable date_regex. Usaremos la fecha que está almacenada dentro de myDate para comprobar si la fecha sigue el formato dd/mm/yy o no. Si la fecha sigue este formato, imprimiremos el Date follows dd/mm/yy format dentro de la consola; de lo contrario, imprimiremos Invalid date format.

Validar la fecha con el método Date.parse() en JavaScript

El Data.parse() es un método que ya está disponible en JavaScript. Este método solo toma una fecha como un único parámetro que es una cadena.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1 id="message"></h1>

    <script>
        let isValidDate = Date.parse('03/17/21');

        if (isNaN(isValidDate)) {
          document.getElementById('message').innerHTML = "This is not a valid date format.";
        }
        else{
          document.getElementById('message').innerHTML = "This is a valid date format.";
        }

    </script>
  </body>
</html>

Salida en el navegador:

This is a valid date format.

La función Data.parse() devolverá un número en milisegundos basado en la fecha de entrada proporcionada. Si no reconoce la fecha de entrada, devolverá NaN (no un número) como salida. El resultado de esta función se almacena dentro de la variable isValidDate.

Si el valor dentro de la variable isValidDate es NaN (no un número), devolverá false y el mensaje que se imprimirá en la pantalla es Este no es un formato de fecha válido. Si devuelve true, imprimirá el mensaje This is the valid date format. en la pantalla como salida.

Artículo relacionado - JavaScript DateTime

  • Obtener la hora actual en JavaScript
  • Cómo comparar dos fechas en JavaScript