URL-Verifizierung
Richard
- programmiertechnik
Hallo,
Um eine Benutzereingabe auf einen gültigen URL zu prüfen, sind reguläre Ausdrücke am populärsten. Allerdings soll es ja mehrere Seiten umfassende regexps dafür geben, um wirklich alle Möglichkeiten mit Unterverzeichnissen, Parametern etc. abzudecken. Aber dieser Aufwand lohnt sich für mich nicht.
'/(http://)?.+..+/' ist aber schonwieder zu brav. Welche Alternativen sind denn heute üblich? Wie wurde das Problem bei diesem Forum gelöst?
Beste Grüße
Richard
Hi,
Um eine Benutzereingabe auf einen gültigen URL zu prüfen, sind reguläre Ausdrücke am populärsten. Allerdings soll es ja mehrere Seiten umfassende regexps dafür geben, um wirklich alle Möglichkeiten mit Unterverzeichnissen, Parametern etc. abzudecken. Aber dieser Aufwand lohnt sich für mich nicht.
Copy & Paste ist für Dich zu viel Aufwand?
Es gibt exakt *eine* Regular Expression, die URLs korrekt verifizieren kann. Alles andere sind entweder Varianten, Subsets oder Fehler.
'/(http://)?.+..+/' ist aber schonwieder zu brav.
Und zu falsch. Viel zu falsch.
Welche Alternativen sind denn heute üblich?
Entweder richtig prüfen oder gar nicht prüfen.
Cheatah
Hallo Cheatah,
Copy & Paste ist für Dich zu viel Aufwand?
Ich kann mir nicht vorstellen, dass in allen Gästebüchern, Foren etc. dieser Welt dieser Ausdruck steht. Wenn die Eingabe dann doch nicht 100%ig korrekt ist, entsteht eben ein toter Link. Who cares, man könnte ja genauso einen völlig korrekten URL angeben, hinter dem trotzdem nichts ist. Da nützt der beste reguläre Ausdruck nichts.
Es gibt exakt *eine* Regular Expression, die URLs korrekt verifizieren kann. Alles andere sind entweder Varianten, Subsets oder Fehler.
'/(http://)?.+..+/' ist aber schonwieder zu brav.
Und zu falsch. Viel zu falsch.
Da er zu brav ist, also zu viel durchgehen lässt, ist er falsch, logisch.
Welche Alternativen sind denn heute üblich?
Entweder richtig prüfen oder gar nicht prüfen.
Na gut.
Beste Grüße
Richard
Hi,
Ich kann mir nicht vorstellen, dass in allen Gästebüchern, Foren etc. dieser Welt dieser Ausdruck steht.
nein, ich auch nicht. Genauso wenig kann ich mir vorstellen, dass alle Websites der Welt validen Code besitzen. Trotzdem ist es falsch, wenn dem nicht so ist. Wen also interessiert unser Mangel an Phantasie?
Wenn die Eingabe dann doch nicht 100%ig korrekt ist, entsteht eben ein toter Link. Who cares,
Wenn Du tatsächlich diese Einstellung hast, verstehe ich nicht, was Du hier willst.
'/(http://)?.+..+/' ist aber schonwieder zu brav.
Und zu falsch. Viel zu falsch.
Da er zu brav ist, also zu viel durchgehen lässt, ist er falsch, logisch.
Und zu wenig.
Cheatah
Hallo Forum,
Copy & Paste ist für Dich zu viel Aufwand?
Ich kann mir nicht vorstellen, dass in allen Gästebüchern, Foren etc. dieser Welt dieser Ausdruck steht.
Darüber haben sich schon andere Gedanken gemacht (wie so häufig) und diese auch noch niedergeschrieben.
Gruß
Alexander Brock
Hi,
Es gibt exakt *eine* Regular Expression, die URLs korrekt verifizieren kann.
Nö.
Kleines Gegenbeispiel:
schon für die beiden Protokolle http und https gibt es mehrere Varianten, z.B.:
http:|https:
(?:http|https):
https?:
https{0,1}:
(erhebt keinen Anspruch auf Vollständigkeit)
==> es gibt mehrere Regular Expressions, die URLs korrekt verifizieren können.
cu,
Andreas