Iwie steige ich bei diesem ganzen RegExp-Kram immer nicht durch. Wahrscheinlich weil ich immernoch nach einem System dahinter suche, was vermutlich gar nicht existiert. *Schulterzuck*
Ich habe einen String, dieser darf nur bestimmte Zeichen (große/kleine Buchstaben, Zahlen und einige bestimmte Sonderzeichen) enthalten und außerdem eine bestimmte Länge nicht überschreiten. Da der String aber vom User eingegeben wird, muss ich das natürlich überprüfen.
Die RegExp müsste meiner Meinung nach dann so aussehen: ([A-Za-z0-9!#$%&'*+/=?_-]{1,40})
Min 1 und Max 40 Zeichen lang und alle Zeichen zwischen den eckigen Klammern erlaubt.
Hab ich das wenigstens schon mal richtig erkannt?
Nächstes Problem: Womit prüfe ich das? Das einzige, was ich gefunden habe, und das wird immer wieder an allen Stellen dafür empfohlen, ist preg_match.
Was ich daran nicht verstehe: preg_match würde mir doch bei einem solchen String "Test123§;-TästtesT" ein true (bzw) zurück liefern, denn der String enthält ja gültige Zeichen, aber eben auch ein paar ungültige (§;ä), nur würden ihn die Ungültigen nicht stören.
Man könnte das natürlich erschlagen, indem man auf Blacklist prüft. Also eine Liste mit ungültigen Zeichen erstellt, und dann schaut ob eins davon drin ist. Aber die Wahrscheinlichkeit dabei eins zu übersehen, ist mir ehrlich gesagt zu groß.
TIA
Look
Ich habe einen String, dieser darf nur bestimmte Zeichen (große/kleine Buchstaben, Zahlen und einige bestimmte Sonderzeichen) enthalten und außerdem eine bestimmte Länge nicht überschreiten. Da der String aber vom User eingegeben wird, muss ich das natürlich überprüfen.
Die RegExp müsste meiner Meinung nach dann so aussehen: ([A-Za-z0-9!#$%&'*+/=?_-]{1,40})
Min 1 und Max 40 Zeichen lang und alle Zeichen zwischen den eckigen Klammern erlaubt.
Hab ich das wenigstens schon mal richtig erkannt?
Nächstes Problem: Womit prüfe ich das? Das einzige, was ich gefunden habe, und das wird immer wieder an allen Stellen dafür empfohlen, ist preg_match.
Was ich daran nicht verstehe: preg_match würde mir doch bei einem solchen String "Test123§;-TästtesT" ein true (bzw) zurück liefern, denn der String enthält ja gültige Zeichen, aber eben auch ein paar ungültige (§;ä), nur würden ihn die Ungültigen nicht stören.
Man könnte das natürlich erschlagen, indem man auf Blacklist prüft. Also eine Liste mit ungültigen Zeichen erstellt, und dann schaut ob eins davon drin ist. Aber die Wahrscheinlichkeit dabei eins zu übersehen, ist mir ehrlich gesagt zu groß.
TIA
Look