Pregunta

Me he encontrado con un problema al intentar modificar un formulario que yo mismo no he creado.

El formulario tiene un campo asp: input para un valor de fecha, que se verifica por un requiredFieldVal y un rangeVal. RangeVal tiene un tipo establecido en " date " y valor mínimo 2000-01-01: valor máximo 3000-01-01

Ahora al problema, estoy tratando de agregar para que el usuario también pueda ingresar la fecha en forma de "20000101" en otras palabras, sin el " - " ;.

Intenté agregar otro rangeVal con el tipo Integer y los valores min, max, y los puse a ambos en el mismo grupo de validación, pero eso no funcionó.

¿Cómo permito que el usuario use ambos formatos (cualquiera de ellos) en el campo de entrada de fecha?

¡Gracias de antemano!

¿Fue útil?

Solución

Puede usar un validador de expresiones regulares en lugar del validador de rango. Estoy un poco oxidado con Regex, pero estoy seguro de que puedes encontrar algo aquí.

http://www.regular-expressions.info/

Aquí hay un enlace a la página de fechas:

http://www.regular-expressions.info/dates.html

prueba esto, creo que funcionará. Si no es así, avíseme y trabajaré para corregirlo:

((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))

Otra publicación trajo a colación un punto en el que esta expresión regular no validará algunas fechas inválidas como el 31 de febrero. En este caso, simplemente crearía una clase de validación que hereda del validador de expresiones regulares y anularía el método EvaluateIsValid y verificaría para ver si Es una fecha real. Esto permite la mayor parte de la validación realizada en el extremo del cliente, con la copia de seguridad en el nivel del servidor, que de todos modos debería estar haciendo una validación secundaria.

Otros consejos

Cuando utiliza múltiples controles de validación para validar un solo control, todos los controles de validación deben pasar.

Podría usar una expresión regular (como señala Kevin), pero será difícil hacer la validación que requiera (comprobar que el valor es un objeto válido DateTime y dentro del rango especificado) .

Sugeriría escribir su propio CustomValidator y luego utilícelo para validar sus valores como quiera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top