Firstly, many people suggest using the Regex Validator in ASP.NET's toolkit to validate against the regex.
However this is not culture sensitive e.g. UK == DD/MM/YYYY whereas USA == MM/DD/YYYY and many people use ISO YYYY-MM-DD
A better way would be to use the CompareValidator and do a type check:
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToValidate="DateTextBox" ErrorMessage="Enter a valid date"
Operator="DataTypeCheck" Type="Date" ValidationGroup="GroupName" />
You can couple this with a DateTimePicker, AJAX toolkit and a ScriptManager too for more functionality, though the above example will work.
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
TagPrefix="ajaxToolkit" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Label ID="lblDate" runat="server" Text="Date: "></asp:Label>
<asp:TextBox ID="txtDate" runat="server" Width="140px"></asp:TextBox>
<asp:Image ID="imgCalendar" runat="server" ImageUrl="~/Images/Calendar.png" />
<ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server"
TargetControlID="txtDate" Format="MM/dd/yyyy"
PopupButtonID="imgCalendar" />
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToValidate="txtDate" ErrorMessage="* Enter a valid date"
Operator="DataTypeCheck" Type="Date" ValidationGroup="grpDate" />
http://blogs.mgtechgroup.com/markc/archive/2007/06/07/ASP.NET-Date-Validator.aspx