目立たないクライアント側の検証を使用しています。
次のデータ注釈を持つViewModelがあります
[DisplayName("Entrytime")]
[DataType("Time")]
[RegularExpression(@"^(?[0-1]?[0-9]|[2][0-3]):[0-5][0-9]$", ErrorMessageResourceType = typeof(LocalizedResources), ErrorMessageResourceName = "Time")]
public DateTime? EntryTime { get; set; }
問題は、クライアント側の検証が正常に機能し、たとえば 25:20 ではなく 12:20 をフィールドに入力できることです。
しかし、サーバーで ModelState.IsValid に問い合わせると、フィールドでエラーが発生します。
問題は正規表現のコロンの前にあるようです。表現を変えると
[RegularExpression(@"^.*:[0-5][0-9]$",...
それは正常に動作します。
しかし、私が持っている場合
[RegularExpression(@"^[0-2][0-9]:[0-5][0-9]$",...
それはまだサーバー上でそれを受け入れません。変更は、クライアント側の検証で期待どおりに機能します。
クライアント側の正規表現解析とサーバー側の違いはありますか? ちょっとバグっぽい?!
ありがとう