Mailinglisten-Archive |
Hallo Oliver, Danke für die Mühe! Oliver Schaedlich schrieb: > gib mal ein paar genaue Beispiele, was als Eingabe nun erlaubt bzw. > nicht erlaubt sein soll; auch, wo der Ausdruck welche zusätzlichen > Zeichen tolerieren muss. > > Ich habe Deinen Ausdruck mal etwas bereinigt (unnötige Klammern, > Escapes, Klassen etc. entfernt), wodurch er zwar etwas kürzer, aber > auch nicht wesentlich aufschlußreicher wird. ;) > > ^[\w\pL/()&]{1,18}(?:(?: |-|\./){0,3}[\w\pL/()&]+\.?){0,6} ?-?(?:[ \d]{0,4}?\.?)?$ Mein Ausdruck war im Lauf der Zeit und von mir selbst ausgetüftelt, deshalb vielleicht etwas umständlich, hat aber soweit funktioniert. Erlaubt sein sollten bisher Namenseingaben mit mehreren Vor- oder Nachnamen, Bindestrichen, auch Strings wie "Papst YX der V." oder "Anna & Co.", "König Ludwig der 2." u.s.w. Nun sollen auch Zollzeichen erlaubt sein, die viele als Anführungszeichen benutzen nach dem Motto "Haus "Sonnenschein" " oder der (Kneipen-)Apostroph, z.B. "Jutta's Kramladen". Ich habe das heute morgen übergangsweise so gelöst, dass ich den im Formular eingegebenen String zuerst wie folgt bearbeite : $correct_string = str_replace ("\"", "\'", $original); $correct_string = stripslashes ($correct_string); $correct_string = strip_tags($correct_string); Anschließend kommt folgendes: $correct_string = rtrim($correct_string); $correct_string = ltrim($correct_string); $correct_string = urldecode($correct_string); Dann habe ich meinen bisherigen regülären Ausdruck so verändert: /^[\w\pL\/()\&\']{1,18}(([ ]|-|\.\/){0,3}[\w\pL\/()\&\']+\.?){0,6}([ ])?(\-)?([ 1234567890]{0,4}?[\.]?)?$; Habe also immer da, wo ich Buchstaben erlaube, auch Folgendes eingefügt: \' Nun sind der Apostroph (und damit auch die umgewandelten Zollzeichen erlaubt). Das so hinzubekommen, ohne das Zollzeichen zu ersetzen, ist mir nicht gelungen. Viele Grüße Armin -- Armin Briatta Fotografie und Webdesign Kirchbergweg 2 64367 Mühltal-Trautheim (0173) 6 54 97 10 www.briatta.de
php::bar PHP Wiki - Listenarchive