Mailinglisten-Archive |
moin moin, "Cyrill Schumacher" <webmasterbhs_(at)_bluewin.de> schrieb: >> $sonderz1 = eregi("^[a-zA-Z0-9.-_-!+?§%&]*$",$wert); >> sollte einer dieser chars eine sonderfunktion in den >> [] Klammern haben mußt du einen \ voranstellen Stefan Pfister <pfister_(at)_bodensee.com> schrieb: > Warning: REG_ERANGE in /usr/local/httpd/cgi-bin/pwchange.php3 on line 47 Du musst ja auch, wie Cyrill schrieb die Zeichen mit Sonderfunktion mit \ maskieren. Sonderfunktion in der regular Expression haben auf jeden Fall folgende Zeichen: +*()?^$\-"{}. Innerhalb der eckigen Klammern ist allerdings der Syntax nicht ganz so streng, weil wir von Zeichenklassen reden (und somit quantifier keine Wirkung haben). Sonderfunktion in [] hat: ^ als erstes Zeichen in der Klammer -> Negation - Bereich (a-z) " als Ende des strings Also kann eine solche regexp so aussehen: if (eregi("^[a-z\"\-!^$%§&/()=?'*+_]+$",$string)) { ^^^^ nur die beiden muessen maskiert werden. Uebrigens, wenn Du eregi <- [i]gnore case verwendest, brauchst Du auch nicht beide a-zA-Z, das ist doppelt gemoppelt :-) Ausserdem trifft Deine Expression auch auf Leerstrings zu. (* findet 0-n Zeichen) Daher lieber das "+" verwenden (+ findet 1-n Zeichen) hth, oliver
php::bar PHP Wiki - Listenarchive