利用RegularExpressionValidator或CompareValidator控制項來驗證TextBox內的日期格式
最近剛好有網路上有人問到這個問題.....
我也去找了解決方法....
第一種是用RegularExpressionValidator控制項來驗證
正規表達示如下:
(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])
2007/09/24→正確
2007/13/24→錯誤
但這個方法還是有一個缺點.....
2007/02/31→正確(實際上是錯誤的,因為2月不可能有31天)
我想只要再修改一下正規表達示就可以了(但我不太會).....
第二種是用CompareValidator控制項來驗證
首先拉一個CompareValidator控制項,然後設定屬性 Type="date" Operator="DataTypeCheck"
這個方法就可以解決2007/02/31是正確的問題了....
ps.感謝藍色小舖的Insus.NET大大提供此方法.....
原始範例如下...
c#範例
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="datetimeVaild_CS.aspx.cs"
02 Inherits="datetimeVaild_CS" %>
03
04 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
05 <html xmlns="http://www.w3.org/1999/xhtml">
06 <head id="Head1" runat="server">
07 <title>未命名頁面</title>
08 </head>
09 <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
13 <br />
14 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"
15 ControlToValidate="TextBox1" ValidationExpression="(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])"></asp:RegularExpressionValidator><br />
16 <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1"
17 ErrorMessage="CompareValidator" Operator="DataTypeCheck" Type="Date"></asp:CompareValidator>
18 <br />
19 <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
20 </form>
21 </body>
22 </html>
23
02 Inherits="datetimeVaild_CS" %>
03
04 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
05 <html xmlns="http://www.w3.org/1999/xhtml">
06 <head id="Head1" runat="server">
07 <title>未命名頁面</title>
08 </head>
09 <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
13 <br />
14 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"
15 ControlToValidate="TextBox1" ValidationExpression="(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])"></asp:RegularExpressionValidator><br />
16 <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1"
17 ErrorMessage="CompareValidator" Operator="DataTypeCheck" Type="Date"></asp:CompareValidator>
18 <br />
19 <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
20 </form>
21 </body>
22 </html>
23