C# 使用任意日期格式的文本框上的正则表达式

C# 使用任意日期格式的文本框上的正则表达式,c#,asp.net,regex,C#,Asp.net,Regex,我希望能做到这一点,但接受任何格式:01/01/2001或01-01-2001或01-01-2001。有什么想法吗 <asp:TextBox ID="TextBox1" runat="server" AutoPostBack = "true" CausesValidation = "true"> </asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" Co

我希望能做到这一点,但接受任何格式:01/01/2001或01-01-2001或01-01-2001。有什么想法吗

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack = "true" CausesValidation = "true">     </asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate = "TextBox1"
ValidationExpression = "^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$"// anyway i can add or here with other regex requirements
runat="server" ErrorMessage="Invalid Date format. Valid Date Format see above">
</asp:RegularExpressionValidator>
您可以使用DateTime.TryParse使用CustomValidator验证DateTime:

aspx:


您希望日期采用什么格式?您想接受任何日期格式还是只接受特定格式?
protected void ValidateDate(Object sender, ServerValidateEventArgs e)
{ 
    string[] allowedFormats = { "dd/MM/yyyy","dd-MM-yyyy", "dd-MM-yyyy" };
    DateTime dt;
    e.IsValid = DateTime.TryParseExact(e.Value, allowedFormats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dt);
}
<asp:CustomValidator ID="ValidDate" ControlToValidate="TextBox1" OnServerValidate="ValidateDate" runat="server"></asp:CustomValidator>