誰かがこれを手伝ってくれるのではないかと思っていました。テキストボックスからのテキスト入力を検証する必要があります。TimeSpan で受け入れられる形式であることを確認する必要があります。形式は hh:mm:ss:fff (時間、分、秒、ミリ秒。例: 15:30:45:040) である必要があります。
6 に答える
サーバー側での検証について話している場合は、使用TimeSpan.TryParse()
するのが最も簡単で確実な方法です。
##:##:##:### の入力をマスクして、アルファベットや特殊文字がずれないようにします。
バックエンドで有効な値を扱っていることを確認するために、TimeSpan.TryParse()
そこにたどり着くようにしています。下を見てください。
var val = "00:22:11:424";
TimeSpan ts = new TimeSpan();
TimeSpan.TryParse(val, out ts);
明らかに、TryParse は例外を処理するためTimeSpan.Parse(val)
、ユーザーに表示する例外がある場合は、自分で例外を使用してキャッチできます。TimeSpan.MinValue
TryParse の後に ts の値をチェックして、値が >= ...であることを確認することもできます。
try
{
var val = "00:22:11:422";
TimeSpan ts = new TimeSpan();
ts = TimeSpan.Parse(val);
}
catch(Exception ex)
{
//do something...
}
TimeSpan のTryParseメソッドを使用できます。
サーバー側で検証している場合は、TimeSpan.TryParse
( MSDN リンクはこちら)を使用します。
bool isValidTimeSpan(string str)
{
TimeSpan interval;
if (TimeSpan.TryParse(value, out interval)) return true;
return false;
}
また、ユーザーが探している形式でテキストを入力するように強制するマスク編集を使用します。これにより、すべてのエラーがなくなるわけではありませんが、問題を減らすのに断固として役立ちます。
このトピックを見てください: 正規表現での時間/分/秒の一致 - より良い方法?
これを行う方法はたくさんあります。を使用String.Split()
して、 と の 2 文字で構成される 4 つのパーツがあるかどうかを確認しTimeSpan.TryParse()
ます。