Ingo: Sonderzeichen für Formularfelder

Beitrag lesen

habe leider keine Ahnung wie das "maskierst das Anführungszeichen in der Zeichenkette (''')" aussehen müßte in diese speziellen Zeile " '^([a-zA-Z0-9 |°|.|']{3,20})$' "

Du hast zwei Lösungsmöglichkeiten für dein Problem:

a) '^([a-zA-Z0-9 |°|.|']{3,20})$'
b) "^([a-zA-Z0-9 |°|.|']{3,20})$"

Mir würde b) eher zusagen, weil das Muster bzw. die Zeichenkette dann im Original im Code steht, d.h. ohne Maske.

Das Ganze gehört zu den PHP-Grundlagen, erklärt im Kapitel über  Zeichenketten.

Dein Muster erscheint mir davon abgesehen etwas undeutlich, denn eine Kette von beispielsweise zwanzig ° ist doch sicher keine gültige Eingabe? Weiterhin hast du in [a-zA-Z0-9 |°|.|'] den senkrechten Strich dreimal eingetragen, [a-zA-Z0-9 |°.'] führt zum gleichen Ergebnis. Vermutlich bist du fälschlicherweise davon ausgegangen, dass in einer Zeichenklasse (eckigen Klammern) ein Oder zwischen einzelnen Zeichen erforderlich sein müsste, dem ist aber nicht so.

»»

<<< Besten Dank Gonzo!

Habe eine Zeile weiter ein Textfeld und wollte die Anzahl der Zeichen nicht begrenzen und daher habe ich den zweiten Wert in den geschweiften klammern weg gelassen und dann wird mir immer angezeit "Feld LADUNG ist leer oder enthält unerlaubte Zeichen!"

if(!eregi("^([a-zA-Z0-9 |%|&|$|!|?|+|:|ä|ö|ü|-|à|è|ò|é|á|ó|ú|ù|.|(|)]{3,})$", $ladung))

auch wenn ich einen hohen Wert(z.B.1000) eintrage kommt die Gleiche Meldung?

kann man da nicht für unbegrenzt ein * einsetzen und wenn ja , dann wie und wo?

Danke für lehrreiche Tipps.