2

誰かがこれを手伝ってくれるのではないかと思っていました。テキストボックスからのテキスト入力を検証する必要があります。TimeSpan で受け入れられる形式であることを確認する必要があります。形式は hh:mm:ss:fff (時間、分、秒、ミリ秒。例: 15:30:45:040) である必要があります。

4

6 に答える 6

5

サーバー側での検証について話している場合は、使用TimeSpan.TryParse()するのが最も簡単で確実な方法です。

于 2012-04-24T16:47:09.790 に答える
4

##:##:##:### の入力をマスクして、アルファベットや特殊文字がずれないようにします。

バックエンドで有効な値を扱っていることを確認するために、TimeSpan.TryParse()そこにたどり着くようにしています。下を見てください。

var val = "00:22:11:424";
TimeSpan ts = new TimeSpan();
TimeSpan.TryParse(val, out ts);

明らかに、TryParse は例外を処理するためTimeSpan.Parse(val)、ユーザーに表示する例外がある場合は、自分で例外を使用してキャッチできます。TimeSpan.MinValueTryParse の後に ts の値をチェックして、値が >= ...であることを確認することもできます。

try
{
   var val = "00:22:11:422";
   TimeSpan ts = new TimeSpan();
   ts = TimeSpan.Parse(val);
}
catch(Exception ex)
{
   //do something...
}
于 2012-04-24T16:46:41.663 に答える
3

TimeSpan のTryParseメソッドを使用できます。

于 2012-04-24T16:47:23.070 に答える
0

サーバー側で検証している場合は、TimeSpan.TryParse( MSDN リンクはこちら)を使用します。

bool isValidTimeSpan(string str)
{
   TimeSpan interval;
   if (TimeSpan.TryParse(value, out interval)) return true;
   return false;
}

また、ユーザーが探している形式でテキストを入力するように強制するマスク編集を使用します。これにより、すべてのエラーがなくなるわけではありませんが、問題を減らすのに断固として役立ちます。

于 2012-04-24T16:50:17.917 に答える
0

このトピックを見てください: 正規表現での時間/分/秒の一致 - より良い方法?

于 2012-04-24T16:53:03.070 に答える
0

これを行う方法はたくさんあります。を使用String.Split()して、 と の 2 文字で構成される 4 つのパーツがあるかどうかを確認しTimeSpan.TryParse()ます。

于 2012-04-24T16:50:41.113 に答える