seth_not@home: Reguläre Ausdrücke in PHP, wer kann helfen?

Beitrag lesen

gudn tach!

$checkname = "[$§;{}?|#()'+*@^~]";
[...] wie bekomme ich da jetzt Sonderzeichen wie [] oder auch den . rein?

durch maskieren mit einem back-slash.

$checkname = '[$§;{}?|#()'+*@^~[]]';

ich weiss nicht ob posix (eregi) auch so toll ist wie perl (in php preg_match), jedenfalls ist das back-slash vor [ eigentlich ueberfluessig, also

$checkname = '[$§;{}?|#()'+*@^~[]]';

Das sind ja alles zeichen die eig. für die Funktion selber stehen... die [] zum beispiel oder auch mit dem . kann man ja arbeiten.

der punkt hat in zeichenklassen-definitionen, also innerhalb von box brackets seine literale bedeutung, braucht also auch nicht maskiert zu werden.

$checkname = '[$§;{}?|#()'+*@^~[].]';

Weiß jemand von euch wie man das am besten umsetzen kann. Darüber hinaus: Wüsste jemand welche Sonderzeichen ich noch filtern könnte?

einfacher waer's evtl., wenn du bloss angibst, was erlaubt sein soll

z.b. $checkname = '[1]+$';

^ anfang
[...]+ mindestens eines dieser zeichen
$ ende

Die Funktion soll einen Vornamen überprüfen.

oh, das kann man beliebig kompliziert gestalten.
am einfachsten ist es, wenn du nur lateinische buchstaben und evtl. das minus (als bindestrich) zulaesst. das hat sogar gewisse praktische vorteile.

ansonsten koennte evtl. das hier interessant sein, also
  \p{L}
wenn ich es richtig verstehe.
evtl. reicht dir aber auch schon "\w" und eine passende locale-einstellung.

prost
seth


  1. a-zA-Z- ↩︎