我想知道是否有人可以帮助我解决这个问题。我需要验证来自文本框的文本输入。我需要确保它采用 TimeSpan 可接受的格式。期望的格式应该是 hh:mm:ss:fff(即小时、分钟、秒和毫秒。例如 15:30:45:040)
问问题
3198 次
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)
如果有要向用户显示的异常,您可以自己使用和捕获异常。您还可以在 TryParse 之后检查 ts 的值,以确保该值 >= TimeSpan.MinValue
...
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
有很多方法可以做到这一点。使用String.Split()
并检查是否有由 2 个字符和 组成的 4 个部分TimeSpan.TryParse()
。
于 2012-04-24T16:50:41.113 回答
0
看这个主题: 匹配正则表达式中的小时/分钟/秒 - 更好的方法?
于 2012-04-24T16:53:03.070 回答