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)如果有要向用户显示的异常,您可以自己使用和捕获异常。您还可以在 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 回答