Ответ 1
/^(10|11|12|[1-9]):[0-5][0-9]$/
Я не думаю, что вы хотите 0:50 как действительное время.
/^\d{1,2}[:][0-5][0-9]$/
- это то, что у меня есть. это ограничивает минуты до 00-59. Однако он не ограничивает часы между 0 и 12. Для сходства и единообразия я хотел бы сделать это только с помощью RegEx, если это возможно.
Далее я хотел бы, чтобы первая цифра была необязательной. т.е. 09:30, а также 9:30. Я играл с диапазонами, но что-то вне диапазона всегда приемлемо.
/^(10|11|12|[1-9]):[0-5][0-9]$/
Я не думаю, что вы хотите 0:50 как действительное время.
Предполагая, что вы работаете в течение 12 часов, 0 не является допустимым часом и также должен быть исключен (как указал Джон). Вот базовое решение:
/^(0?[1-9]|1[012]):[0-5][0-9]$/
24-часовое совпадение регулярных выражений, которое работает аналогично:
/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/
От 0 до 9 и 10-12 случаев необходимо обращаться отдельно. (Два правила могут быть объединены с |
.)
/^(?:0?\d|1[012]):[0-5]\d$/
Здесь
(?:…)
- группа, не захватывающая записьx|y
означает соответствие любому шаблону0?\d
соответствует 0 - 9 или 00 - 091[012]
соответствует 10 - 12.Спасибо!!! Я использую этот код Javascript сейчас:
function Check_arrival(time) {
//Assuming you are working in 12 hour time, 0 is not a valid
var patt = new RegExp("^(0?[1-9]|1[012]):[0-5][0-9]$");
var res = patt.test(time);
return res;
}
Рез = истинно | ложно
Это идеально: ^ 0? ([0-9] [0-2]?): [0-5] [0-9] $
Примечание: только 12 часов часов
Для Times: 0: 01- 12:59
или
00:01 - 12:59
Для людей, которые ищут 24-часовой формат соответствия,
чч: мм: сс или ч: мм: сс:
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]:[0-5][\d]$/.test(timestr)
чч: мм или ч: мм:
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]$/.test(timestr)
Этот сайт отлично подходит для тестирования: https://www.regexpal.com/
Дополнительная информация: Объяснение полноты:
^
: начало строки, $
: конец строки. Таким образом, мы помещаем выражение в блок ^..$
чтобы гарантировать, что нет ничего вне нашего шаблона.(2[0-3]|[0-1]?[\d])
: переводится в 2[0-3]
ИЛИ [0-1]?[\d]
2[0-3]
: 20, 21, 22, 23[0-1]?[\d]
: 0 или 1 или ничего (?
), За которым следует одна единственная цифра (\d
). Итак, это работает для чисел от 0 до 19.:
только этот персонаж[0-5][\d]
: число от 00 до 59. Примечание: не допускается использование одной цифры в мм.