Code
^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$
这个可以验证 1900-05-12 这个格式的时间。你可以试试。
时间还是用控件吧,用正则不是太好。如果是 1900-8-1 或者 2006-5-4 这样的格式,怎么验证呢。还是用时间控件吧.。
推荐My97DatePicker 开源免费的。
这个正则表达式还考虑了闰年的情况。代码如下:
<asp:RegularExpressionValidator runat="server" id="DateValidator"
ControlToValidate="YourTextBoxID" ErrorMessage="无效的日期"
ValidationExpression="((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))" />
用My97 Blog http://www.cnblogs.com/my97/RecentComments.html
用法很简单:
<asp:TextBox ID="txtSortTime" runat="Server" onfocus="WdatePicker({dateFmt:'yyyy-MM'})" CssClass="Wdate" Style="width: 100px"/>