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