Estoy tratando de bloquear al usuario para que ingrese números no válidos. Actualmente estoy apoyando los años desde 1901
hasta 20XX
. Entonces, por ejemplo, cuando el usuario intenta ingresar el año desde 2 o 1, debería estar bien en la primera letra pero no en 3. En el segundo carácter, un usuario puede ingresar 9 o 0 y no debe ingresar 3 o 4, etc. esta es mi implementación actual, pero está bloqueando desde el primer carácter porque está comprobando la cadena completa a la vez.
<TextField fullWidth sx={{ pr: 3 }} value={dateOfBirth} {...params} onInput={(e) => { const regex = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/; console.log(e.target.value); e.target.value = regex.test(e.target.value) ? e.target.value : ""; }} />