Ich beschäftige mich gerade mit Suchmustern für ein Formular und bin dabei auf folgende Eigenart gestoßen, für die ich keine Erklärung habe:
Folgende Abfrage funktioniert:
nimmt man jedoch die 0-9 aus dem Suchmuster , bewirkt der Punkt innerhalb der eckigen Klammer, dass die Abfrage nicht mehr funktioniert. Wechselt man die Reihenfolge von Bindestrich und Punkt funktioniert es wieder.
Funktioniert nicht:
Funktioniert:
Aber warum? Müsste die Reihenfolge der erlaubten Zeichen innerhalb einer Charakterklasse nicht eigentlich egal sein oder welche Faktoren spielen da noch eine Rolle. Würde mich freuen, falls Ihr eine Erklärung habt.
Folgende Abfrage funktioniert:
Code:
if (!preg_match("/^[a-zA-ZäÄüÜöÖß0-9-.].*[a-zA-ZäÄüÜöÖß0-9-.]+$/", $_POST["strasse"])){ $message4a="<span class='message'>Bitte nur Buchstaben</span><br>"; }
Funktioniert nicht:
Code:
[a-zA-ZäÄüÜöÖß-.]
Code:
[a-zA-ZäÄüÜöÖß.-]
Kommentar