Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Regular exp


Автор: fromrus 3.12.2009, 10:25
"чч:мм-чч:мм"-собственно как проверить такую запись юзера в текстовое поле,т.е "часы:минуты-часы:минуты"

Автор: Heinzz 3.12.2009, 18:58
регексами у меня не получается проверить такое время ка 24:46
поэтому вот вриант
Код

static bool AssessInput (string  input, out TimeSpan time1, out TimeSpan time2)
        {
            time1 = new TimeSpan();
            time2 = new TimeSpan();
            if (Regex.IsMatch(input, @"^\d{2}:\d{2}-\d{2}:\d{2}$"))
            {
                MatchCollection coll = Regex.Matches(input, @"\d{2}:\d{2}");
                try
                {
                    time1 = TimeSpan.Parse(coll[0].ToString());
                    time2 = TimeSpan.Parse(coll[1].ToString());
                    return true;
                }
                catch { }
            }
            return false;
        }


пользуем
Код

 TimeSpan time1 = new TimeSpan();
            TimeSpan time2 = new TimeSpan();

            string input = "15:45-23:35";

           if (AssessInput(input, out time1, out time2)){
                Console.WriteLine(time1);
                Console.WriteLine(time2);
           }
           else{Console.WriteLine("False");}


UPD тьфу, сделал для времени. Но идея та же

Автор: SmartBye 6.12.2009, 01:25
Код

([01][0-9]|2[0123]):[0-5][0-9]-([01][0-9]|2[0123]):[0-5][0-9]

Исключает время вида 24+. Учитывает только строгий формат чч:мм-чч:мм без пробелов. 
Если что-то не обрабатывает или обрабатывает не нужное пиши, просто сразу так все сложно предусмотреть. 

Автор: fromrus 10.12.2009, 11:36
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)