Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :)

Geschrieben

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.

Geschrieben

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).

Geschrieben

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

Geschrieben
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?

Geschrieben (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 von bytebrain
Geschrieben
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.
Geschrieben

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]

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...