Estoy atascado con la siguiente pregunta: ¿cómo puedo determinar si un campo de fecha de entrada se envió de forma incompleta? Por ejemplo, si envío 12/09/aaaa como valor, el valor que realmente envío es null , que es el mismo valor que obtengo si envío gg/mm/aaaa , es decir, el valor vacío. ¿Hay alguna forma de discriminar a través de JS entre los dos casos? (En realidad, estoy usando Vue.js pero creo que no es tan importante).
¡Gracias por adelantado!
En este caso, puede expresar expresiones regulares para validar si la entrada proporcionada tiene un formato de fecha válido.
Podrías usar la siguiente expresión regular
/^\d{2}\/\d{2}\/\d{4}$/mencionado en la expresión regular de respuesta para validar el formato de fecha y hora (MM/DD/YYYY)
Puede usar (str). Match (regex) en JS para usar esta función.
He compartido un enfoque de uso, la expresión regular se puede actualizar en función de los casos de uso.
let date = new Date('12/09/aaaa');
fecha == 'Fecha no válida' // Esto devolverá verdadero en la fecha no es válida
Si usa la entrada de fecha HTML nativa, no hay forma de diferenciar entre un estado parcialmente lleno y un estado totalmente vacío porque la entrada de fecha HTML nativa debe estar vacía o tener una fecha válida de acuerdo con la especificación:
4.10.5.1.7 Estado de fecha (tipo=fecha)
[...] Los agentes de usuario no deben permitir que el usuario establezca el valor en una cadena no vacía que no sea una cadena de fecha válida . [...]
El atributo de
value, si se especifica y no está vacío, debe tener un valor que sea una cadena de fecha válida .El algoritmo de saneamiento de valores es el siguiente: si el valor del elemento no es una cadena de fecha válida , configúrelo en la cadena vacía.
Esto significa que, cuando la entrada se completa parcialmente, sin importar qué formulario o evento de entrada se active ( submit , change , etc.), el valor de la entrada será una cadena vacía.
Tienes que crear tu propia entrada de fecha personalizada.