C# - 如何验证字符串的格式为hh:mm:ss:fff?

时间:2012-04-24 16:44:27

标签: c# validation timecodes

我想知道是否有人可以帮我这个。我需要验证文本框中的文本输入。我需要确保它采用TimeSpan可接受的格式。期望格式应为hh:mm:ss:fff(即小时,分钟,秒和毫秒。例如15:30:45:040)

6 个答案:

答案 0 :(得分:5)

如果您正在谈论在服务器端进行验证,那么使用TimeSpan.TryParse()将是最简单,最安全的方式。

答案 1 :(得分:4)

我屏蔽了##:##:##:###的输入,以确保你没有得到不正确的字母和特殊字符。

为了确保您在后端处理有效值,我会期待TimeSpan.TryParse()让您到达那里。看下面。

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

显然,TryParse将处理异常,因此您可以使用TimeSpan.Parse(val)并自行捕获异常(如果有一个要显示给用户)。您还可以在TryParse之后检查ts的值,以确保该值为> = TimeSpan.MinValue ...

try
{
   var val = "00:22:11:422";
   TimeSpan ts = new TimeSpan();
   ts = TimeSpan.Parse(val);
}
catch(Exception ex)
{
   //do something...
}

答案 2 :(得分:3)

您可以使用TimeSpan的TryParse方法。

答案 3 :(得分:0)

如果您在服务器端进行验证,我会使用TimeSpan.TryParseMSDN link here)。

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

另外,我会使用屏蔽编辑强制用户以您要查找的格式输入文本,这不会消除所有错误,但它会极大地帮助减少问题。

答案 4 :(得分:0)

有很多方法可以做到这一点。使用String.Split()并检查是否有4个部分由2个字符和TimeSpan.TryParse()组成。

答案 5 :(得分:0)