Может кто-нибудь помочь мне создать регулярное выражение для проверки времени?
Допустимые значения: от 0:00 до 23:59.
Когда время меньше 10:00, оно также должно поддерживать один номер символа
т.е.: это допустимые значения:
- 9:00
- 9:00
Спасибо
Может кто-нибудь помочь мне создать регулярное выражение для проверки времени?
Допустимые значения: от 0:00 до 23:59.
Когда время меньше 10:00, оно также должно поддерживать один номер символа
т.е.: это допустимые значения:
Спасибо
Попробуйте это регулярное выражение:
^(?:[01]?[0-9]|2[0-3]):[0-5][0-9]$
Или быть более четким:
^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
Я не хочу красть любую тяжелую работу, но это именно то, что вы ищете, по-видимому.
using System.Text.RegularExpressions;
public bool IsValidTime(string thetime)
{
Regex checktime =
new Regex(@"^(20|21|22|23|[01]d|d)(([:][0-5]d){1,2})$");
return checktime.IsMatch(thetime);
}
Я бы просто использовал DateTime.TryParse().
DateTime time;
string timeStr = "23:00"
if(DateTime.TryParse(timeStr, out time))
{
/* use time or timeStr for your bidding */
}
Если вы хотите разрешить военную и стандартную с помощью AM и PM (необязательный и нечувствительный), вы можете захотеть попробуйте.
^(?:(?:0?[1-9]|1[0-2]):[0-5][0-9]\s?(?:[AP][Mm]?|[ap][m]?)?|(?:00?|1[3-9]|2[0-3]):[0-5][0-9])$
Регулярное выражение ^(2[0-3]|[01]d)([:][0-5]d)$
должно совпадать с 00:00 до 23:59. Не знаю С# и, следовательно, не может предоставить вам соответствующий код.
/RS
Лучше!!!
public bool esvalida_la_hora(string thetime)
{
Regex checktime = new Regex("^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$");
if (!checktime.IsMatch(thetime))
return false;
if (thetime.Trim().Length < 5)
thetime = thetime = "0" + thetime;
string hh = thetime.Substring(0, 2);
string mm = thetime.Substring(3, 2);
int hh_i, mm_i;
if ((int.TryParse(hh, out hh_i)) && (int.TryParse(mm, out mm_i)))
{
if ((hh_i >= 0 && hh_i <= 23) && (mm_i >= 0 && mm_i <= 59))
{
return true;
}
}
return false;
}
[RegularExpression(@"^(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (am|pm|AM|PM)$",
ErrorMessage = "Invalid Time.")]
Попробуйте это
public bool IsTimeString(string ts)
{
if (ts.Length == 5 && ts.Contains(':'))
{
int h;
int m;
return int.TryParse(ts.Substring(0, 2), out h) &&
int.TryParse(ts.Substring(3, 2), out m) &&
h >= 0 && h < 24 &&
m >= 0 && m < 60;
}
else
return false;
}