我使用VB.net和Jquery Datepicker来获取日期。
在我的VB.net代码中
<tr>
<td>
DateOfReceiving:
</td>
<td colspan="3">
<asp:TextBox ID="DateOfReceivingTextBox" runat="server"
CssClass="pastdatepicker"
Text="DateOfReceiving" />
</td>
</tr>
我想仅允许输入用户今天的日期或格式为dd/mm/yyyy
的过去日期。我想要vb.net自定义验证。
请帮助编写vb.net正则表达式。
答案 0 :(得分:2)
您可以使用RangeValidator和一些VB.NET代码执行此操作:
<tr>
<td>DateOfReceiving:</td>
<td colspan="3">
<asp:TextBox ID="DateOfReceivingTextBox" runat="server"
CssClass="pastdatepicker"
Text="DateOfReceiving" />
<asp:rangevalidator runat="server" ID="DateRangeValidator"
ControlToValidate="DateofReceivingTextBox"
ErrorMessage="Date must be in the past"
Display="Dynamic" Type="Date" />
</td>
</tr>
在代码隐藏中设置验证程序的范围,最有可能在Page_Load:
中DateRangeValidator.MinimumValue = Date.MinValue.ToString("yyyy/MM/dd")
DateRangeValidator.MaximumValue = Date.Today.ToString("yyyy/MM/dd")
答案 1 :(得分:1)
您不会想要使用正则表达式。
如果要在服务器端执行此操作,则应考虑创建验证控件。我从来没有在VB.NET中做到这一点(仅仅因为我从未使用过VB.NET - 我对C#感觉更舒服),但是this page似乎是一个很好的起点。您将要继承并覆盖BaseValidator
类中的方法。
除非必须,否则我通常不编写客户端代码,但看起来jQuery也支持form validation。但是,正如brad.huffman在评论中指出的那样,您可能希望避免在客户端进行日期/时间验证,因为您无法控制用户的日期/时间设置 - 它们可能不正确。