Ich habe mich nun schon fast eine Woche abgemüht einen ordentlichen regulären Ausdruck bzw Split für die Prüfung einer Image Url und finde einfach keine zufriedenstellende Lösung
Zustandegekommen sind nur diese 2 volkommen unvolständige Lösungen:
Nur Match:
mir bekannte Fehler: nach dem Hostteil (http://www.blaaa.com/) sind Wegen dem .* doppelte Sonderzeichenfolgen wie // möglichCode:link.match(/^(http:\/\/)(www\.){0,1}[\w-_]+(\.[\w_-]+)*\.([a-z]{2,3}|info)\/[^\/].*[^\/]\.(jpg|jpeg|gif|giff|png|bmp|tiff|tga|svg){1}$/)
Split/Match:
Diese Script ist etwas älter deswegen hab ich hier noch versucht ein WWW anzufügen falls es nicht existiert ... wer kam auf die Idee http Links ohne www zu erlauben ;(Code:split1= link.split("http://"); if (split1[1] != null) { split2= split1[1].split(/[\.]{1}(jpg|jpeg|gif|giff|png|bmp|tiff|tga){1}$/); if (split2[1] != null) { if (split2.length==3) {split3= split2[0].split(/[\.]{1}([a-z]{2,3}|info)\//i,3);} alert(split3.length);alert(split3[0]);alert(split3[1]);alert(split3[2]); if (split3.length==3) { if (!split3[0].match(/^(\.|\W|\s|_|!)/) && !split3[0].match(/(\.|\W|\s|!)$/) && !split3[2].match(/(\.|\W|\s|!)$/)) { wwwsuche=split3[0].search(/^www./) if (wwwsuche ==-1) { w3="www."; split3[0]= w3.concat(split3[0]); } if (split3[0].length>1) { if (split3[2].length>0) { feld.value="http://"+split3[0]+"."+split3[1]+"/"+split3[2]+"."+split2[1]; } } } } } }
mir bekannte Fehler: links wie http://upload.wikimedia.org/wikipedia/de/thumb/e/e8/BILD.svg/565px-BILD.svg.png enthalten ein ähnliches Muster wie toplvl endungen das führt zu fehlerhaften Ausgaben
Kennt/ hatt jemand eine bessere Lösung ??
Geändert von zocker (07.06.2009 um 13:17 Uhr)
Schreibfehler sind gewollt und wer sie findet und richtig zusammensetzt erhält die Formel um aus Wasser Bier zu machen
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)