Vb.net DatetimePicker:无效的Reg Exp
我正在使用下面的正则表达式,它可以很好地进行日期验证。但是,如果我从DatePicket中选择日期,即使它抛出警报:输入有效日期。如何修改正则表达式以便与DatePicker兼容Vb.net DatetimePicker:无效的Reg Exp,vb.net,datetimepicker,Vb.net,Datetimepicker,我正在使用下面的正则表达式,它可以很好地进行日期验证。但是,如果我从DatePicket中选择日期,即使它抛出警报:输入有效日期。如何修改正则表达式以便与DatePicker兼容 Set RegularExpressionObject = New RegExp With RegularExpressionObject .Pattern = "^(((0?[1-9]|[12]\d|3[01]).-\/.-\/?\d{2}))|((0?[1-9]|[12]\d|30).-\/.-\/?\
Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "^(((0?[1-9]|[12]\d|3[01]).-\/.-\/?\d{2}))|((0?[1-9]|[12]\d|30).-\/.-\/?\d{2}))|((0?[1-9]|1\d|2[0-8])[.-\/]0?2.-\/?\d{2}))|(29[.-\/]0?2.-\/?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$"
.IgnoreCase = True
.Global = True
End With
expressionmatch = RegularExpressionObject.Test(TxtVal)
If expressionmatch Then
Else
msgbox "You must enter a valid Date.",,"Invalidentry"
form1.item(OHldr).focus()
Exit Function
End if
我知道这不是你要问的,但是有一个更简单的方法来验证日期时间。正则表达式很好,但有时有更简单的方法 使用CustomeValidator,并在Server_Validate事件中执行以下操作:
bool IsValidDate = false;
if(System.DateTime.TryParse(SomeValue))
{
IsValidDate = true;
}
return IsValidDate;
您可以使用
If Date.TryParse(s,d),然后…
其中s是字符串,d是日期。date.tryparse对于有效日期返回true,对于无效日期返回false。如果日期有效,它会将其转换为d中的日期数据类型。格式化代码可能会使其更具可读性