0

我在尝试修改我自己没有构建的表单时遇到了问题。

该表单有一个日期值的 asp:input 字段,由 requiredFieldVal 和 rangeVal 检查。rangeVal 的类型设置为“日期”,最小值为 2000-01-01:最大值为 3000-01-01

现在解决问题,我正在尝试添加,以便用户也可以以“20000101”的形式输入日期,换句话说,没有“-”。

我尝试添加另一个具有整数类型和最小值、最大值的 rangeVal,并将它们都放在同一个 ValidationGroup 中,但这不起作用。

如何允许用户在日期输入字段中使用两种(其中一种)格式。

先感谢您!

4

2 回答 2

2

当您使用多个验证控件来验证单个控件时,所有验证控件都必须通过。

您可以使用正则表达式(正如 Kevin 指出的那样),但进行所需的验证(检查该值是否为有效DateTime对象并在指定范围内)将很难干净地完成。

我建议编写您自己的CustomValidator控件,然后使用它来验证您想要的值。

于 2009-06-23T12:35:30.440 回答
0

您可以使用正则表达式验证器代替范围验证器。我对 Regex 有点生疏,但我相信你可以在这里找到一些东西。

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

这是日期页面的链接:

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

试试这个,我认为它会工作。如果没有,请告诉我,我会努力纠正它:

((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])))

另一篇文章提出了一个观点,这个正则表达式不会验证一些无效的日期,比如 2 月 31 日。在这种情况下,我将创建一个继承自正则表达式验证器的验证类并覆盖 EvaluateIsValid 方法并检查它是否是实际的日期。这允许在客户端完成大部分验证,备份在服务器级别,无论如何都应该进行辅助验证。

于 2009-06-23T12:19:07.477 回答