2009-11-11 24 views
-1

我正在使用下面的正則表達式在日期驗證的情況下工作正常。但是,如果我從DatePicket中選擇日期,那麼它將引發警報:輸入有效的日期。我如何修改正則表達式以便與DatePicker兼容。DatetimePicker:無效註冊表編號

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 
+0

格式化代碼可能會使其更具可讀性 – Dean 2009-11-12 10:42:36

回答

0

我知道這不是你要問的,但有一個更簡單的方法來驗證日期時間。正則表達式很好,但有時候有一種更簡單的方法。

使用CustomeValidator,並在Server_Validate事件,請執行下列操作:

bool IsValidDate = false; 
if(System.DateTime.TryParse(SomeValue)) 
{ 
    IsValidDate = true; 
} 

return IsValidDate; 
0

您可以使用If Date.TryParse(s, d) Then ...其中s是一個字符串,d是一個日期。 date.tryparse對於有效日期返回true,對於無效日期則返回false。如果日期有效,則將其轉換爲d中的日期數據類型。