2012-04-04 30 views
0

Ich habe einen regulären Ausdruck, der Zeit in einem bestimmten Format wie dem folgenden akzeptiert, "10:00".Zeitformat für reguläre Ausdrücke?

Ich möchte den regulären Ausdruck in etiher accpet dieses Format ändern oder nur einen einzigen Bindestrich akzeptieren ("-"). Hier

ist der Ausdruck:

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

Antwort

1

Kernpunkte zur Lösung dieses:

  • Eckige Klammern ([ und ]) werden verwendet, um Zeichenklassen zu umschließen.
  • Das Rohr | bedeutet or.
  • [\:|-] bedeutet chech entweder für einen Literal : oder einen Bindestrich -.

Das resultierende Muster ist:

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

Sieht aus wie ich missverstanden, dachte ich, du meintest 10:00 oder 10-00. Entschuldigung! – jon

+0

Entweder du oder ich missverstanden die Frage ;-) – Joey

0

einfach eine Alternative verwenden:

^<your regex>$|^-$ 

Dies wird entweder eine Zeit in Ihrem Format oder einen einzelnen Bindestrich-minus entsprechen.

0

Muss diese Regex so viele Klammern haben?

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