Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# yyyy-MM-dd格式的正则表达式_C#_Asp.net_Regex_Date - Fatal编程技术网

C# yyyy-MM-dd格式的正则表达式

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.net中有一个正则表达式来检查输入数据是否与格式yyyy-MM-dd匹配。但是,如果输入数据甚至是有效日期,它总是显示“请输入有效日期”。我尝试过一些正则表达式,但它们也不起作用

在aspx文件中

<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.
    }
}