Versionen im Vergleich
Schlüssel
- Diese Zeile wurde hinzugefügt.
- Diese Zeile wurde entfernt.
- Formatierung wurde geändert.
Regulä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.
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) | ||||||
---|---|---|---|---|---|---|
|