2010-11-03 52 views

回答

7

我會做這樣的事情:

private static readonly Regex _validator = 
    new Regex(@"^\d{4}-\d{5}-\d{4}-\d{3}$", RegexOptions.Compiled); 
private static bool ValidateInput(string input) 
{ 
    input = (input ?? string.Empty); 
    if (input.Length != 19) 
    { 
     return false; 
    } 
    return _validator.IsMatch(input); 
} 
+0

,只有不適合的數字?誠然,這個問題並沒有具體說明「文本」是什麼。 – 2010-11-03 15:27:32

+0

@Liviu - 我通常將**#**解釋爲數字佔位符。 – ChaosPandion 2010-11-03 15:28:42

+0

爲什麼要經過檢查長度和多次返回的麻煩,是預編譯的正則表達式操作如此昂貴以至於不值得這樣做?我會讓它失敗的正則表達式,並使該方法更簡單。不過我喜歡你使用\ d而不是[0-9] – dstarh 2010-11-03 15:34:46