Versionen im Vergleich
Schlüssel
- Diese Zeile wurde hinzugefügt.
- Diese Zeile wurde entfernt.
- Formatierung wurde geändert.
Status | ||||
---|---|---|---|---|
|
Inhalt
tocReguläre Ausdrücke sind ein mächtiges Werkzeug, um ein Muster innerhalb eines Textes zu finden oder die Eingabe einer Zeichenfolge auf deren gültiges Format zu validieren. Je nach Verwendung des regulären Ausdrucks gibt es jedoch einige Punkte zu beachten, auf die wir hier aufmerksam machen wollen.
Inhalt
Inhalt |
---|
Validierung von Feldwerten
Validierung einer 5-stelligen Zahl (als Text, z.B. Postleitzahl)
Bei Text-Attributen kann der eingegebene Wert gegen ein angegebenes Format in Form eines regulären Ausdrucks validiert werden. Der im ersten Moment offensichtliche reguläre Ausdruck “[0-9]{5}” ist jedoch nicht richtig, so dass damit auch eine 6- bzw. 7-stellige Zahl akzeptiert würde. Das Problem wird folgend durch ein Beispiel dargestellt. Als Wert wird die Zahl “1234567” verwendet.
RegEx "[0-9]{5}" > Es wird validiert, ob eine 5-stellige Ziffernfolge vorhanden ist. Die Validierung ist gültig, da folgende 6-stelligen Zahlen aus der Zeichenfolge erkannt werden: 12345, 23456, 34567
RegEx "^[0-9]{5}" > Es wird validiert, ob der Wert mit einer 5-stelligen Ziffernfolge beginnt. Die Validierung ist gültig, da folgende 5-stellige Zahl aus der Zeichenfolge erkannt wird: 12345
RegEx "[0-9]{5}$" > Es wird validiert, ob der Wert mit einer 5-stelligen Ziffernfolge endet. Die Validierung ist gültig, da folgende 5-stellige Zahl aus der Zeichenfolge erkannt wird: 34567
RegEx "^[0-9]{5}$" > Es wird validiert, ob der Wert von Beginn bis Ende aus einer 5-stelligen Ziffernfolge besteht. Die Validierung ist falsch, da keine exakt 5-stellige Zahl erkannt wird.
Damit beim Attribut eine exakt 5-stellige Zahl validiert wird, muss also der reguläre Ausdruck “^[0-9]{5}$“ verwendet werden. Statt “[0-9]“ kann auch “\d” verwendet werden, womit sich alterativ der reguläre Ausdruck “^\d{5}$“ ergibt.
Validierung von Sonderzeichen
Soll ein eingegebener Text dahingehend geprüft werden, dass keine Sonderzeichen enthalten sind, kann dies mit folgendem regulärem Ausdruck geprüft werden:
“^[^<>!#@]+$”
Was bedeutet dies:
Das führende ^ und abschließende $ bedeutet, dass der gesamte String als Ganzes betrachtet werden soll
Das ^ innerhalb der eckigen Klammern bedeutet eine Negation der folgenden Zeichen, also dass die in den eckigen Klammern angegebenen Zeichen nicht enthalten sein dürfen
Innerhalb den eckigen Klammern stehen alle Zeichen, welche ausgeschlossen werden sollen. Hierbei ist jedoch zu beachten, dass manche Zeichen mit Metabedeutung (z.B. der Backslash “\”) mit einem Backslash “escapted” werden müssen (z.B. ein Backslash als Zeichen: “\\” oder ein Plus-Zeichen: “\+”)
Das + hinter den eckigen Klammern bedeutet, dass kein einziges Zeichen davon vorkommen darf (Quantor “beliebig oft, aber mindestens einmal”, jedoch negiert)
Suche nach einem String innerhalb eines Textes
Suche nach einer 5-stelligen Zahl (z.B. Postleitzahl)
Im Gegensatz zur Validierung eines Feldwertes können hier die beiden Zeichen für den Beginn (^) und das Ende ($) eines Textes nicht verwendet werden, da der zu suchende String sich normalerweise irgendwo mitten im Text befindet. Hier könnte man z.B. über vorangehende und nachfolgende Whitespaces (z.B. Leerzeichen, Tabulatoren) die Zahl auf 5 Stellen einschränken. Statt “\d{5}” also “\s?\d{5}\s?”, womit 6- und mehrstellige Zahlen ausgeschlossen werden.
Verwandte Themen
Nach Stichwort filtern (Inhalt nach Stichwort) | ||||||
---|---|---|---|---|---|---|
|