URL validation regex pattern
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
angabe
code
deutsche umlaute
empfehlen
funktion
gefunden url
http
info
komische sachen
links blockieren
match
normal verbraucher
null
port
sagen
sammlung
suche
text
treffer
url
-
Hallo
ich bin auf der Suche nach einem brauchbaren URL validation regex pattern
Dazu habe ich hier eine Sammlung gefunden: http://mathiasbynens.be/demo/url-regex
aber welches ist jetzt der "beste" pattern ?!
der Spoon Library PAttern hat ja ganz brauchbare Ergebnisse,
aber der ist ja soooooo lang, weil er jede Domain-Endung einzeln aufgelistet hat
Welchen würdet Ihr mir empfehlen ?
Und wie mache ich damit eine Funktion in JavaScript, die mir als Text "valid" oder "invalid" zurück gibt ?
ich habe bisher nur sowas (ich gbaub der Pattern ist aber mist ... ?!)
function checkUrl(url){ var pattern = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; // var pattern = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/; return url.match(pattern); }
das gibt mir aber entweder die Treffer oder 'null' zurück ?!
... ich hätte aber gerne, das die Funktion mir als Text "valid" oder "invalid" zurück gibt
Danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dann prüfe doch vor deinem return ob eine Zahl gößer 0 drinne steht oder null (bzw. einfach else) und gib dann entsprechend deine Werte zurück. Ich würde dort dann true oder false zurückgeben und die Textausgabe extern regeln. So kannst du die Funktion flexibler nutzen.
Zum Pattern selbst gibt dir Google sehr viele Treffer welche du mal ausprobieren kannst. Welcher gut ist oder nicht musst du entweder analysieren indem du das Pattern liest oder die Kommentare sowie die Seriösität der Seite berücksichtigst. Ich selbst habe noch kein URL-Pattern benötigt und kann dir daher leider nicht sagen welcher gut ist oder nicht.
Gruß S. Brosch -
also ok, die Funktion habe ich hinbekommen
function checkUrl(url){ // var pattern = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; // var pattern = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/; var pattern = /^((http|https):\/\/)(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/ if ( url.match(pattern) === null) { var info = 'invalide'; } else { var info = 'valide'; } return info; }
zu Parrern
... ja gerade weil es ja so viele Treffer bei Suche (in Google) gibt
habe ich gehofft, hier kann mir jemand einen empfehlen
(bzw sagen, mit welchem er gute Erfahrungen gemacht hat)
der es sollen auch URLs als valide gelten, die GET PAremeter (Query-String) haben
auch wenn (bestimmte) Sonderzeichen dabei sind (z.B.: deutsche Umlaute: ä. ö, ü, etc.)
aber nicht, wenn URL mit Port-Angabe ist
zudem würde ich noch gerne bekannte Affili-Links / Ref-Links blockieren
aber das wird dann wohl noch eine andere Funktion, nicht in checkUrl()
-
Hallo
bmarky schrieb:
aber nicht, wenn URL mit Port-Angabe ist
Wieso nicht?
http://www.iem.uni-due.de:7331/
Weiß ja nicht, was du genau machst..
mfg -
hmmm, weil ich angenommen habe,
das URLs mit Port meist irgendwelche Hacker.Seiten oder andere komische Sachen sind,
ich kannte bisher keine URL mit Port-Angabe die für den "otto-Normal-Verbraucher" gedacht ist
aber wie man sieht .... gibt's ja doch :oO
... also gut, mit Port = ok -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage