![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 30.09.2000
Beiträge: 267
|
![]() Hallo!
Ich möchte einen String in PHP auf eine Anzahl zulässiger Zeichen prüfen. Bei Vorhandensein eines nicht gültigen Chars soll abgebrochen werden. Erlaubt sind: 0-9 a-z _ (Unterstrich) . (Punkt) - (Minus) Meine Versuch dazu: PHP-Code:
Kann mir jemand helfen? tia Roland |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 25.09.2001
Beiträge: 386
|
![]() Ohne jetzt groß nachzudenken:
Angenommen es sind nur die Zeichen a und b erlaubt. test .*[ab].* = Zeichen a oder b kommen vor, die anderen sind völlig frei. !test .*[ab].* = Es kommt weder a noch b vor. test .*[^ab].* = Es kommen Zeichen vor, die weder a noch b sind. Daher möchtest du die dritte Variante nehmen. lg paux
____________________________________
SpamAssassin - The only pne|s en|@rgement p|II that really works! |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Einen Punkt "." repäsentiert in einer Regex zumeist ein beliebiges Zeichen, daher muss er im Regelfall mit einem Backslash "\" escaped werden.
Also Code:
[_\.0-9a-z-]
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 30.09.2000
Beiträge: 267
|
![]() verh****:
den "\" vor dem Punkt habe ich eh gemacht. Mir schleierhaft, wo der abgeblieben ist. |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Also bei mir (perl) hat er mit
Code:
if( $file =~ /[^_\.0-9a-z-]/gi)
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 30.09.2000
Beiträge: 267
|
![]() hm, die lösung hab ich jetzt so gefunden:
!preg_match("/^[0-9a-zA-Z_\.-]*$/",$filename) Das scheint zu funzen! Es lebe google-groups ![]() Danke für eure Zeit! Roland |
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Wäre es mit
Code:
preg_match("/[^0-9a-zA-Z_\.-]/",$filename)
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#8 |
Veteran
![]() Registriert seit: 25.09.2001
Beiträge: 386
|
![]() @kingchaos01: Das Dacherl gehört wohl in die Klammer, so wie ich es angegeben hatte. Außerdem ist mir nicht klar wieso du das preg_match ver-nicht-est. Du wollst ja testen OB Zeichen vorkommen die NICHT erlaubt sind?
____________________________________
SpamAssassin - The only pne|s en|@rgement p|II that really works! |
![]() |
![]() |
![]() |
#9 |
Veteran
![]() Registriert seit: 25.09.2001
Beiträge: 386
|
![]() [scheißdreck]
____________________________________
SpamAssassin - The only pne|s en|@rgement p|II that really works! |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() Registriert seit: 30.09.2000
Beiträge: 267
|
![]() hm, ich seh das so:
die regex liefert true, wenn *nur* die werte vom pattern enthalten sind. bei verneinung springt "die" an. also "if not true, springe in die condition". |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|