如何验证短时间格式的输入字符串

How to validate input string in short time format

本文关键字:格式 输入 字符串 短时间 何验证 验证      更新时间:2023-10-16

我有一个输入字符串,它表示24小时的时间。有效的输入是字符串,如:

7:04
07:4
7:4
07:04

无效的输入字符串显然类似于25:68。有没有什么简单的方法可以验证时间格式,然后以epoch格式解析,假设时间是今天的时间?这里可能有什么方便的boost库吗?

您可以使用strptime来完成此操作,这是类Unix系统上的标准配置:http://www.kernel.org/doc/man-pages/online/pages/man3/strptime.3.html

我看到两个选项:

  1. 简单的regex或boost::expression(我更喜欢它)。

  2. 获取分号之间的数字并将其转换为数字,然后检查其值。类似这样的东西:

    string sTime("53:30");
    int iSemiColon = sTime.find(':');       
    if (atoi(sTime.substr(0, iSemiColon).c_str()) >= 24) return false;
    if (atoi(sTime.substr(iSemiColon + 1).c_str()) >= 60) return false;
    

看看这个答案。如果您不局限于STL,您可以使用boost.Regex作为验证部分,尽管这是一个非常简单的问题,您可以轻松地推出自己的解决方案。