Шаблон регулярного выражения для строки времени ЧЧ: ММ: СС

Я хочу проанализировать строку чч: мм: сс . Простой вариант - ([0-1]? \ D | 2 [0-3]): ([0-5]? \ D): ([0-5]? \ D) , который ожидает 2: 3 : 24 или 02:03:24 строка.

Я хочу сделать еще один шаг и пройти проверку даже в таких случаях, как

  1. , если вы вводите только 56, он должен быть пройден, поскольку 56 можно рассматривать как 56 секунд [SS]
  2. , если вы вводите 2: 3 или 02:03 или 02: 3 или 2:03 он должен пройти. 2 минуты и 3 секунды [ММ: СС]
  3. Если вы вводите 20:30:12, проход с 20 часами, 30 минутами и 12 секундами [ЧЧ: ММ: СС]
  4. , если вы вводите 78:12, не пройти 78 минут неверно ....

В основном, если один ":" найден, считайте число перед ":" как MM, а число после ":" как SS . Если два ":" найдены, считайте ЧЧ: ММ: СС

Я придумал этот шаблон.

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

Вроде нормально работает. Я хотел знать любое другое более простое регулярное выражение, которое может сработать.

37
задан Tim Pietzcker 29 November 2011 в 22:00
поделиться