2012-04-24 159 views

回答

4

我會屏蔽輸入##:##:## :###以確保你沒有得到不合適的字母和特殊字符。

爲了確保您處理的是後端有效的值,我希望TimeSpan.TryParse()能夠幫助您。往下看。

var val = "00:22:11:424"; 
TimeSpan ts = new TimeSpan(); 
TimeSpan.TryParse(val, out ts); 

顯然的TryParse將處理異常,因此你可以使用TimeSpan.Parse(val)和自己捕捉到的異常,如果有一個顯示給用戶。你也可以查看TS的值的TryParse後,以確保該值> = TimeSpan.MinValue ...

try 
{ 
    var val = "00:22:11:422"; 
    TimeSpan ts = new TimeSpan(); 
    ts = TimeSpan.Parse(val); 
} 
catch(Exception ex) 
{ 
    //do something... 
} 
+0

這就是我已經做了。我想知道如果嘗試解析失敗,我會如何返回錯誤消息? – danielcooperxyz 2012-04-24 16:50:27

+0

看看上面的編輯... – RSolberg 2012-04-24 16:51:04

+0

@ D4nC00per:和返回錯誤信息的問題在哪裏? – Vlad 2012-04-24 16:51:14

5

如果你正在談論的驗證,然後使用TimeSpan.TryParse()服務器端將是最簡單的和最簡單的方法。

0

如果您在服務器端進行驗證,我會使用TimeSpan.TryParseMSDN link here)。

bool isValidTimeSpan(string str) 
{ 
    TimeSpan interval; 
    if (TimeSpan.TryParse(value, out interval)) return true; 
    return false; 
} 

而且,我會用一個屏蔽的編輯,迫使用戶進入你正在尋找,這將不會消除所有的錯誤格式的文本,但它會挑釁有助於減少問題。