Expression régulière pour valider l’heure de validité

Quelqu’un peut-il m’aider à créer une expression régulière pour valider l’heure?

Les valeurs valides sont comsockets entre 0:00 et 23:59.

Lorsque l’heure est inférieure à 10h00, elle devrait également prendre en charge un nombre de caractères

ie: ce sont des valeurs valides:

  • 9h00
  • 09h00

Merci

Essayez cette expression régulière:

 ^(?:[01]?[0-9]|2[0-3]):[0-5][0-9]$ 

Ou pour être plus distinct:

 ^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 

Je ne veux voler le travail de personne, mais c’est exactement ce que vous recherchez, apparemment.

 using System.Text.RegularExpressions; public bool IsValidTime(ssortingng thetime) { Regex checktime = new Regex(@"^(20|21|22|23|[01]d|d)(([:][0-5]d){1,2})$"); return checktime.IsMatch(thetime); } 

Je viens d’utiliser DateTime.TryParse ().

 DateTime time; ssortingng timeStr = "23:00" if(DateTime.TryParse(timeStr, out time)) { /* use time or timeStr for your bidding */ } 

Si vous souhaitez autoriser les opérations militaires et standard avec l’utilisation de AM et PM (facultatif et insensible), vous voudrez peut-être essayer.

 ^(?:(?: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])$ 

La regex ^(2[0-3]|[01]d)([:][0-5]d)$ devrait correspondre à 00:00 à 23:59. Je ne connais pas C # et ne peut donc pas vous donner le code approprié.

/ RS

 [RegularExpression(@"^(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (am|pm|AM|PM)$", ErrorMessage = "Invalid Time.")] 

Essaye ça

Meilleur!!!

  public bool esvalida_la_hora(ssortingng 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; } 
  public bool IsTimeSsortingng(ssortingng ts) { if (ts.Length == 5 && ts.Contains(':')) { int h; int m; return int.TryParse(ts.Subssortingng(0, 2), out h) && int.TryParse(ts.Subssortingng(3, 2), out m) && h >= 0 && h < 24 && m >= 0 && m < 60; } else return false; }