Aloha ;)
ich möchte folgendes Format checken: 123:23
also vor dem Doppelpunkt max 3 Stellen [Zahlen],
Das wäre dann \d{1,3}
- mindestens eine, maximal 3 Zahlen, daraufhin ein Doppelpunkt, also \d{1,3}:
.
danach 2 Stellen [Zahlen].
Wie jetzt - exakt oder maximal? Falls exakt, dann \d{2}
, sonst \d{1,2}
; ich geh mal von letzterem aus. Mit dem, was wir schon hatten, ist das dann \d{1,3}:\d{1,2}
.
Vor und nach dem Komma können nur Zahlen stehen. Es kann aber auch sein, dass z.B. :23 weggelassen wurde. Das ist auch gültig.
Also verpacken wir den Teil mit dem Doppelpunkt noch in eine "genau einmal oder überhaupt nicht"-Subclause:
\d{1,3}(:\d{1,2})?
Gibt es dafür eine RegEx, welche ich in JavaScript verwenden könnte?
Ja - die oben genannte. Du kannst sie auch online testen und an deine Bedürfnisse anpassen.
Sei dir im Klaren darüber, dass das (wenn du mehr als einen match zulässt) auch ein 1234:12 matcht - mit zwei Vorkommnissen (123 und 4:12). Wölltest du so etwas nicht hättest du dich genauer ausdrücken müssen. Ins Blaue geraten könnte es sein, dass du deinen Regex noch mit entsprechenden Wortgrenzen (\b\d{1,3}(:\d{1,2})?\b
, aber Achtung, auch :
ist eine Wortgrenze) umschließen willst oder - wahrscheinlich eher - die Anfang-Ende-Markierung (^\d{1,3}(:\d{1,2})?$
, Test mit multiline-flag) einsetzen möchtest.
Grüße,
RIDER