Asp.net 如何验证字符串是否为dd-M-y格式的日期,而不是过去的日期?

Asp.net 如何验证字符串是否为dd-M-y格式的日期,而不是过去的日期?,asp.net,regex,Asp.net,Regex,我有一个日期字段,格式为“dd-M-y”,示例01-Jan-2013。首先,我想检查格式,它必须是“dd-M-y”,其次,日期不应该是在过去,但可以是今天和以后 我该怎么做?我想使用正则表达式,但我不知道什么是合适的。您应该使用DateTime.TryParseExact而不是使用正则表达式来验证日期时间 string testDate = "01-Jan-2013"; DateTime temp; if (DateTime.TryParseExact(testDate,

我有一个日期字段,格式为“dd-M-y”,示例01-Jan-2013。首先,我想检查格式,它必须是“dd-M-y”,其次,日期不应该是在过去,但可以是今天和以后


我该怎么做?我想使用正则表达式,但我不知道什么是合适的。

您应该使用
DateTime.TryParseExact
而不是使用正则表达式来验证日期时间

string testDate = "01-Jan-2013";
DateTime temp;
if (DateTime.TryParseExact(testDate, 
                           "dd-MMM-yyyy", 
                           CultureInfo.InvariantCulture, 
                           DateTimeStyles.None, 
                           out temp) &&
    (temp > DateTime.Today))
{
    //Valid date and greater than today
}
else
{
    //Invalid date or less than today
}

我认为你应该约束用户以正确的格式填写日期,而不是检查它


在这种情况下,最好的解决方案是

我认为最好先将其转换为
DateTime
对象。它将使数据操作和验证更容易、更可靠。