![]() |
![]() |
|
|
|||||||
| Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
| 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) | |
| Themen-Optionen | |
| Ansicht | |
|
|