2012-04-04 4 views
0

У меня есть регулярное выражение, которое принимает время в определенном формате, например, «10:00».Формат регулярного выражения времени?

Я хочу изменить регулярное выражение на этот символ или принять только одну тире («-»).

Вот это выражение:

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

ответ

1

Ключевые моменты для решения этой:

  • Квадратные скобки ([ и ]) используются, чтобы приложить классы символов.
  • Труба | средства or.
  • [\:|-] означает chech для буквального : или дефиса -.

Полученная картина:

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

Похоже, я неправильно понял, я думал, что вы имели в виду 10:00 или 10-00. Извиняюсь! – jon

+0

Либо вы, либо меня неправильно поняли вопрос ;-) – Joey

0

Просто используйте альтернативу:

^<your regex>$|^-$ 

Это будет соответствовать либо время в вашем формате или один дефис-минус.

0

У этого регулярного выражения должно быть так много скобок?

/^(([01]?\d|2[0-3]):[0-5]\d|-)$/ 
Смежные вопросы