2013-02-17 93 views
1

我有一個表示24h時間的輸入字符串。有效的輸入是像字符串:如何以短時間格式驗證輸入字符串

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

和無效輸入的字符串會明顯像25:68。是否有任何簡單的方法來驗證的時間格式,然後解析時間是現在的時代?有沒有可能在這裏得到方便的提升庫?

+0

[?正則表達式(http://en.cppreference.com/w/cpp/regex) – 2013-02-17 14:09:04

回答

1

this answer。如果你不限於STL,你可以使用boost.Regex作爲驗證部分,雖然這是一個簡單的問題,你可以輕鬆地推出自己的解決方案。

2

我看到兩個選項:

  1. 簡單的正則表達式或升壓:: xpressive中(我喜歡它更多)。

  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;