验证文本框中的日期
本文关键字:日期 文本 验证 | 更新日期: 2023-09-27 17:52:42
如何确定textbox
中的值是否为正确的date
?
, 这是我的文本框中的日期值:01/32/2013
我知道它是一个错误的日期值,但我如何确定它是一个错误的格式?我可以通过使用 try and catch
来避免这种情况,但我不想使用它,如果我在问题中找不到解决方案,我会使用它。
<asp:TextBox ID="txtMEditStartDt" runat="server" Text='<%# Bind("StartDt", "{0:MM/dd/yyyy}") %>'
CssClass="datePicker" SkinID="textSkin" Width="100px"></asp:TextBox>
<asp:MaskedEditExtender ID="MaskedEditStartDt" runat="server"
TargetControlID="txtMEditStartDt" Mask="99/99/9999" MaskType="Date"
CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder=""
CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder=""
CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"/>
<asp:CalendarExtender ID="calendarEditStartDt" runat="server" TargetControlID="txtMEditStartDt" Format="MM/dd/yyyy">
</asp:CalendarExtender>
你为什么不利用日历控件把数据放在你的文本框,而不是让用户输入日期。这将确保用户不会输入错误的数据值,因为用户只需要从日历控件中选择日期
或
如果你知道数据格式,你可以这样做
string dateTimeString = "28/08/2012";
DateTime date;
if(DateTime.TryParseExact(dateTimeString,
"dd/MM/yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None,
out date))
{
//code to process valid date
}
如果不是有效的日期,则返回false值,就像这样,您可以验证日期数据
可以使用DateTime。TryParse方法。在此方法中使用的是应用程序的当前区域性。因此,在失败的情况下,它将返回简单的false
。
DateTime dateValue = default(DateTime);
if (DateTime.TryParse(dateString, out dateValue))
//SUCCESS
else
//FAILURE
DateTime dt;
if(DateTime.TryParse("01/32/2013",out dt)){
//do stuff;
}