Regex für Youtube Videos
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abdecken
ablesen
allheilmittel
anzeigen
aussehen
code
doofe frage
folgende szenarien
form
holen
http
idee
jemand
match
momentan mache
string
suche
szenario
url
video
-
Moin,
ich suche ein Allheilmittel für folgende Szenarien:
http://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
http://www.youtube.com/watch?v=MhPSG6W28Xo&feature=channel_video_title
http://www.youtube.com/v/MhPSG6W28Xo
Momentan mache ich es so:
try { ret += content.match(/youtube.com\/v\/([a-zA-Z0-9-_]*)/)[1]; } catch (e1) { try { ret += content.match(/youtube.com\/watch\?v=([a-zA-Z0-9-_]*)/)[1]; } catch (e2) { } }
Funktioniert aber leider nur bei
http://www.youtube.com/v/MhPSG6W28Xo
http://www.youtube.com/watch?v=MhPSG6W28Xo
Was ja auch logisch ist. Jemand eine Idee, wie man das am besten anstellen kann?
EDIT:
Habs schon
try { ret += content.split('/v/')[1].split('/')[0]; } catch (e1) { try { ret += content.split('v=')[1].split('&')[0]; } catch (e2) { } }
Beitrag zuletzt geändert: 8.8.2011 7:31:10 von fabo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo fabo,
Sag mal wie sollen das jetzt aussehen bei dier ich komm mit deiner deinen Szenario nicht klar. Was meinst du denn mit den 3 URL willst du dein gesamten kanal auf den Player anzeigen lassen oder wie stellste dir das vor.
Ich hab jetzt nämlich mal mit den URLs und den einbettungs code, den du bei Youtube bekommst probiert. und da hab ich gemerkt das du bei den urls immer diesen codeteil verwendest
MhPSG6W28Xo
und da hab ich mir gedacht fügste den code doch mal rein. Und raus kam das
<iframe width="425" height="349" src="http://www.youtube.com/embed/MhPSG6W28Xo?rel=MhPSG6W28Xo" frameborder="0" allowfullscreen></iframe>
Ich hab gemerkt das bei den Videos bei denen weitere angezeigt werden sollten ein ?rel=0" stand und bei den anderen nicht und so hab ich jetzt das mal so versucht und es wurden dann welche von dir angezeigt.
also so hab ichs jetzt verstanden
mfg printboy -
Ich wollte einfach aus einem String die ID des Videos herausfiltern. Mit einem Regex komme ich aber nicht allzu weit, da es viele Formen einer Youtube URL gibt. Diese wiederrum muss ich bei Möglichkeit allesamt abdecken.
Über die Zeit ist mein Code etwas gewachsen:
function doYT(content) { var $ret = 'http://www.youtube.com/embed/'; try { $ret += content.split('/v/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0]; } catch (e1) { try { $ret += content.split('v=')[1].split('&')[0].split('/')[0].split('"')[0].split("'")[0]; } catch (e2) { try { $ret += content.split('/embed/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0]; } catch (e3) { try { $ret += content.split('/vi/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0]; } catch (e4) { $ret += content; } } } } return $ret; }
Beitrag zuletzt geändert: 16.8.2011 17:14:30 von fabo -
printboy schrieb:
Funktioniert er inzwischen und wieso willst du eigentlich aus einen String das holen, wenn du die ID ablesen kannst. Denn ich meine das, dass
die ID ist.MhPSG6W28Xo
weil er dies für seine garantiert für seine User machen will... -.-
Doofe frage sry... -
Sieht irgendwie schöner aus
function getYtId(url) { var id = url.match(/^https?:\/\/(www\.|)youtu(\.be|be\.com.*(v|embed))[=\/]([a-zA-Z0-9_-]*)([\&\?\/]*.*|)$/); if(id) return id[4]; return false; }
Hat für folgende Testfälle geklappt:
http://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
https://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
http://youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
http://www.youtube.com/watch?v=MhPSG6W28Xo&feature=channel_video_title
http://www.youtube.com/v/MhPSG6W28Xo
http://www.youtube.com/embed/MhPSG6W28Xo
http://youtu.be/MhPSG6W28Xo
http://youtube.de/MhPSG6W28Xo
Edit: Und ja, beim letzten kommt false
Beitrag zuletzt geändert: 22.8.2011 13:28:24 von thomasba -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage