Estoy tratando de validar una fecha. El campo de entrada, que es un selector de fecha, podría tener la entrada 05.01.20 que da como resultado la fecha Sun Jan 05 0020 00:00:00 GMT+0053 . Obviamente, este no es un valor de año útil, por lo que esperaría un mensaje de error para el formato de entrada incorrecto (que debería ser YYYY en lugar de YY ; en este ejemplo, 05.01.2020).
Este es mi intento, que funciona pero es complicado, ya que devuelve un valor booleano en la función de transformación. Supongo que este no es el método de validación correcto. También me gustaría agregar un valor de fecha mínimo (después de verificar si el formato es válido). Si la fecha es anterior al 1 de enero de 2000, debería arrojar un error.
Yup.object().shape({ birthday: Yup.date() .transform((value, originalValue) => { const year = originalValue.getFullYear() || 0 return year > 2000 ? originalValue : false }) .typeError('Wrong format (DD.MM.YYYY)') .nullable() .required('Birthday missing') })