Micha: Regulärer Ausdruck mit [[:cntrl:]] erfasst chinesische Zeichen

Beitrag lesen

Hallo,

in einem Script werden Nutzereingaben - insbesondere der Nutzername - nach unerwünschten Zeichen durchsucht. Unerwünscht sind u.a. (nicht-druckbare) Steuerzeichen, die mit folgendem Ausdruck detektiert werden sollen:

preg_match("/([[:cntrl:]]|\255)/", $string)

Problematisch wird es, wenn die Zeichenkette auch chinesische Schriftzeichen enthält bspw. 测试汉语, da diese als Steuerzeichen erkennt werden. Was muss ich mir unter einem nicht-druckbaren Zeichen vorstellen mit Hinblick auf die genannte Zeichenfolge? Wie könnte ein Ausdruck aussehen, der weniger aggressiv bzgl. chinesischer Zeichen ist aber gleichzeitig nicht-druckbare Zeichen detektiert?

Schöne Grüße Micha

akzeptierte Antworten