Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JavaScript: RegExp

Empfohlene Antworten

Veröffentlicht

Hallo,

ich bin verzweifelt am Versuchen, mir ein RegExp zu erstellen, der - in Worten - eine Benutzereingabe folgendermaßen prüfen soll:

die ersten 2 Zeichen müssen Zahlen sein

auf diese 2 Zahlen kann ein Punkt folgen, aber nichts anderes

folgt ein Punkt, müssen wieder 2 Zahlen folgen

auf diese 2 Zahlen kann wieder ein Punkt folgen, aber nichts anderes

folgt ein Punkt, müssen wieder 2 Zahlen folgen

auf diese 2 Zahlen kann wieder ein Punkt folgen, aber nichts anderes

folgt ein Punkt, müsen eine bis max. vier Zahlen folgen

Erlaubte Eingaben wären also:

11 oder

11.11 oder

11.11.11 oder

11.11.11.1 - 11.11.11.1111

Mein Versuch sieht so aus:

/^([0-9]{2})(\.{0,1})(?(2)([0-9]{2}))(\.{0,1})(?(4)([0-9]{2}))(\.{0,1})(?(6)([0-9]{1,4}))$/

Beim Testen mit match bekomme ich folgende Meldung: invalid quantifier

Wenn ich den RegExp in PHP mit preg_match ausführe, funktioniert es allerdings - zumindest kommen keinerlei Fehlermeldungen und die Funktion wird ausgeführt.

Weiß vielleicht jemand, wo das Problem liegen könnte?

tine

Also ich hab deine RegExp jetzt mal abgeändert:


^([0-9]{2})(\.[0-9]{2}){1,2}(\.[0-9]{1,4})?$

Die kannst du z.B. hier testen oder den RegexCoach benutzen. Damit hab ich das auch gemacht.

einen Fehler hat es noch, und zwar kann nach dem 2ten Punkt auch nur 1 Zahl stehen :\

Vielen Dank für die Hilfe. Das bringt mich schon mal ein ganzes Stück weiter.

Werd jetzt mal auf der von dir geposteten Seite noch bisschen rumtesten, um das mit den 2 Zahlen nach einem Punkt noch hinzubekommen.

tine

Beim Testen mit match bekomme ich folgende Meldung: invalid quantifier

Das liegt daran, dass die RegExp-Engine von Java-Script kein Lookaround unterstützt.

So sollte es gehen:


/^((\d{2})((\.\d{2}){0,2}|(\.\d{2}){2}(\.\d{1,4})))$/

Danke @Monty82.

Das funktioniert genau so wie ich es brauche.

Hatte mir schon gedacht, dass es irgendwie an den Bedingungsabfragen liegen muss, hatte aber keine Ahnung, wie ich die umgehen kann.

tine

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.