Slow but short way
Regex rx = new Regex(@"\d{4},\d{6}", RegexOptions.Compiled); bool IsStringValidRegex(string str) { return rx.IsMatch(str); }
Fast but long
bool IsStringValid(string str) { int index = 0; int digitsBefore = 0; int digitsAfter = 0; while (str.Length > index && char.IsDigit(str[index])) { digitsBefore++; index ++; } if (str.Length <= index || str[index]!=',') return false; index++; while (str.Length > index && char.IsDigit(str[index])) { digitsAfter++; index++; } return digitsBefore == 4 && digitsAfter == 6 && index == str.Length; }
How to use
Console.WriteLine(IsStringValid("1234,123456")); Console.WriteLine(IsStringValid("123,123456")); Console.WriteLine(IsStringValid("1234,1234")); Console.WriteLine(IsStringValid("01ОД,123456")); Console.WriteLine(IsStringValid("012№6,123456")); Console.WriteLine("---------------------------"); Console.WriteLine(IsStringValidRegex("1234,123456")); Console.WriteLine(IsStringValidRegex("123,123456")); Console.WriteLine(IsStringValidRegex("1234,1234")); Console.WriteLine(IsStringValidRegex("01ОД,123456")); Console.WriteLine(IsStringValidRegex("012№6,123456"));
Conclusion:
True False False False False -------------------------- - True False False False False