C# yyyy-MM-dd格式的正则表达式
我在asp.net中有一个正则表达式来检查输入数据是否与格式yyyy-MM-dd匹配。但是,如果输入数据甚至是有效日期,它总是显示“请输入有效日期”。我尝试过一些正则表达式,但它们也不起作用 在aspx文件中C# yyyy-MM-dd格式的正则表达式,c#,asp.net,regex,date,C#,Asp.net,Regex,Date,我在asp.net中有一个正则表达式来检查输入数据是否与格式yyyy-MM-dd匹配。但是,如果输入数据甚至是有效日期,它总是显示“请输入有效日期”。我尝试过一些正则表达式,但它们也不起作用 在aspx文件中 <asp:TextBox ID="DateFrom" runat="server" AutoPostBack="true" OnTextChanged="DateFrom_TextChanged"></asp:TextBox> <asp:Image ID="I
<asp:TextBox ID="DateFrom" runat="server" AutoPostBack="true" OnTextChanged="DateFrom_TextChanged"></asp:TextBox>
<asp:Image ID="Image1" runat="server" ImageUrl="IMAGES/icon-calendar.png" />
<ajaxToolkit:CalendarExtender ID="DateFrom_CalendarExtender" runat="server" Enabled="true" TargetControlID="DateFrom" Format="yyyy-MM-dd" PopupButtonID="Image1" />
<br /><asp:Label ID="DateFromMsg" runat="server" ForeColor="Red" Visible="false"></asp:Label>
注:我的问题与本文类似:
我很抱歉重复问题,因为我真的没有注意到它,我发现解决方案使用正则表达式。我将使用
DateTime
解析而不是正则表达式。我强烈怀疑您试图使用MM
说明符而不是MM
。因为mm
代表分钟,mm
代表月
同样根据你的正则表达式,你试着在20世纪或21世纪检查你的DateTime
,你可以用这些世纪边界来检查它
DateTime dt;
if(DateTime.TryParseExact(DateFrom.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
if(dt.Year >= 1900 && dt.Year <= 2099)
{
// Your text is valid.
}
}
DateTime dt;
if(DateTime.TryParseExact(DateFrom.Text,“yyyy-MM-dd”,CultureInfo.InvariantCulture,
DateTimeStyles.None,out)
{
如果(dt.Year>=1900&&dt.Year谢谢你。回答得好!!!这对我真的很有用。
DateTime dt;
if(DateTime.TryParseExact(DateFrom.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
if(dt.Year >= 1900 && dt.Year <= 2099)
{
// Your text is valid.
}
}