azett Geschrieben 15. Dezember 2008 Teilen Geschrieben 15. Dezember 2008 Salut, ich bin auf der Suche nach einem (freien) PHP-Script, was Reguläre Ausdrücke auf Validität prüft. Eine Suche nach "regex validator" bringt mir nur Seiten, die mir das als Dienst anbieten - ich suche den dazu nötigen Algorithmus in PHP. Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 15. Dezember 2008 Teilen Geschrieben 15. Dezember 2008 if(preg_match()) ?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 16. Dezember 2008 Autor Teilen Geschrieben 16. Dezember 2008 *gg* Nee, ich will den RegEx ja validieren, bevor ich ihn (z.B. in preg_match()) benutze. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 16. Dezember 2008 Teilen Geschrieben 16. Dezember 2008 naja, wie und warum ? ^^, dafür sind die PHP Dinger ja da. Du kannst es auch mit javascript machen...je nachdem was du tun willst. Regexp ist so komplex - ich bin mir nicht sicher ob es da überhaupt "validatoren" gibt, valide ist fast alles, ob es das ist was du haben willst, ist eine andere frage. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 16. Dezember 2008 Autor Teilen Geschrieben 16. Dezember 2008 Es geht darum, einen vom Benutzer eingegebenen RegEx zu validieren, bevor ich ihn im weiteren Verlauf zum Validieren von anderen Werten benutze. Die detaillierten Infos á la "an Stelle 14 muß die Klammer geschlossen werden" brauche ich dabei nichtmal - mir reicht einfach die Info "das ist ein valider RegEx" (oder eben nicht). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bytebrain Geschrieben 17. Dezember 2008 Teilen Geschrieben 17. Dezember 2008 Dann prüfe doch einfach, mittels einer RegEx, ob in der "RegEx" des Users, welche ja nur ein String ist, wenn du sie bekommst, gültige RegEx-Zeichen (^,$,[,], usw...) drin stehen. Das ganze muss von der Syntax her ja nur wie eine RegEx aussehen. Außerdem. Falls die RegEx vom User nicht valide ist, wird die RegEx eh nicht funktionieren. Und dann weißt du ja, ob der RegEx valide ist oder nicht :confused: Grüße, bytebrain Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 18. Dezember 2008 Autor Teilen Geschrieben 18. Dezember 2008 Dann prüfe doch einfach, mittels einer RegEx, ob in der "RegEx" des Users, welche ja nur ein String ist, wenn du sie bekommst, gültige RegEx-Zeichen (^,$,[,], usw...) drin stehen. Das ganze muss von der Syntax her ja nur wie eine RegEx aussehen. Genau das ist meine Frage: Wie sieht der RegEx aus, mit dem ich RegExe auf Validität prüfe? Außerdem. Falls die RegEx vom User nicht valide ist, wird die RegEx eh nicht funktionieren. Und dann weißt du ja, ob der RegEx valide ist oder nicht :confused: Wie fange ich den Fehler ab, der während der Ausführung von preg_match() mit einem fehlerhaften RegEx fliegt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bytebrain Geschrieben 18. Dezember 2008 Teilen Geschrieben 18. Dezember 2008 (bearbeitet) Genau das ist meine Frage: Wie sieht der RegEx aus, mit dem ich RegExe auf Validität prüfe? Wie fange ich den Fehler ab, der während der Ausführung von preg_match() mit einem fehlerhaften RegEx fliegt? Hm... Imho wird es ja eine Mammut-RegEx, da in einer RegEx ja so ziemlich alles drin stehen kann: Zeichen, Sonderzeichen, gequotete Sonderzeichen, usw. ... Es wird keinen Fehler bei dem Ausführen von preg_match() mit einer nicht validen regEx geben. preg_match() dient ja zur Mustererkennung. Ist die RegEx ungültig, wird das Muster nicht erkannt. Demnach ist der Rückgabewert von preg_match() = 0. Schau dir aber doch zusätzlich noch die Doku auf php.net an: PHP: preg_match - Manual hth, bytebrain Edit: Alternativ: Vielleichst wirst du hier fündig => http://regexlib.com/ Bearbeitet 18. Dezember 2008 von bytebrain Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 18. Dezember 2008 Autor Teilen Geschrieben 18. Dezember 2008 Imho wird es ja eine Mammut-RegEx Deswegen frag ich lieber vorher, ob dieses Rad nicht schonmal erfunden wurde Es wird keinen Fehler bei dem Ausführen von preg_match() mit einer nicht validen regEx geben. Einspruch. Dieses Script $regex = "/[/"; if (preg_match($regex, "String")) echo "ja"; else echo "nein"; fliegt mir mit folgendem Fehler um die Ohren: Warning: preg_match() [function.preg-match]: Compilation failed: missing terminating ] for character class at offset 1 in C:\opt\CoCreate\OneSpace_Manager_2007\Apache\htdocs\arvid\regextest.php on line 4 Soweit soll es eben nicht kommen. Daß "nein" ausgegeben wird, hilft mir nix; ich weiß ja nicht, obs einfach nicht matcht oder tatsächlich der RegEx falsch ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigvic Geschrieben 18. Dezember 2008 Teilen Geschrieben 18. Dezember 2008 Hi, also ich würde anderst an die Sache rangehen. Und zwar in etwa genauso wie das hier im Forum funktioniert - mit vorgebenen Möglichkeiten. Allein schon aus Sicherheitsgründen ist das der bessere Weg. Ich glaub die Jungs hier Der RegExp-Evaluator - Startseite versuchen sich auch an sowas. ciao, vic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DevilDawn Geschrieben 18. Dezember 2008 Teilen Geschrieben 18. Dezember 2008 Fehlermeldungen unterdrücken und preg_match auswerten. Ein fehlerhafter regex gibt FALSE zurück. $regex = "/[/"; $result = @preg_match($regex, "String"); if ($result === FALSE) { echo "Error parsing regex $regex\n"; } elseif ($result == 0) { echo "No match\n"; } else { echo "match\n"; } [/php] [code] ~> php test.php Error parsing regex /[/ [/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 18. Dezember 2008 Autor Teilen Geschrieben 18. Dezember 2008 Ein fehlerhafter regex gibt FALSE zurück. That's it. Danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.