-1

日付の検証の場合に正常に機能する以下の正規表現を使用しています。しかし、DatePicket から日付を選択しても、alert:Enter valid date がスローされます。DatePicker と互換性があるように正規表現を変更するにはどうすればよいですか。

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
4

2 に答える 2

0

If Date.TryParse(s, d) Then ...s が文字列で d が日付の場合に使用できます。date.tryparse は、有効な日付に対して true を返し、無効な日付に対して false を返します。日付が有効な場合は、d の日付データ型に変換されます。

于 2009-11-12T03:29:48.813 に答える
0

あなたが求めているものではないことはわかっていますが、日時を検証する簡単な方法があります。正規表現は優れていますが、もっと簡単な方法がある場合もあります。

CustomeValidator を使用し、Server_Validate イベントで次の操作を行います。

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

return IsValidDate;
于 2009-11-11T21:14:35.887 に答える