2010-03-30 4 views
3

je besoin d'une aide regexp, parce que pour moi, il faudra beaucoup de temps, pour vous quelques minutes :)jquery, Regexp, faire url dynamique

Je youtube URL:

http://www.youtube.com/watch?v=9_Hd8hXhg7o&feature=youtube_gdata 

Je ne peux pas ajouter ceci objet Embed, pour Embed je dois changer dans cette URL:

http://www.youtube.com/v/9_Hd8hXhg7o&hl=en_US&fs=1& 

cela signifie que je veux ajouter la morue youtube dans une variable, quelque chose comme ça

var url = after regexp "9_Hd8hXhg7o"; 

"http://www.youtube.com/v/" + url +"&hl=en_US&fs=1&"; 

merci!

Répondre

4

Cela devrait le faire:

var url = "http://www.youtube.com/watch?v=9_Hd8hXhg7o&feature=youtube_gdata"; 

var id = url.match(/(\?|&)v=(.*?)(&|$)/)[2]; 

var new_url = "http://www.youtube.com/v/" + id+"&hl=en_US&fs=1&"; 

Cela devrait fonctionner sur à peu près tous les formats que vous lancez. Cet extrait cherche ?v= ou &v= et tous les caractères après que jusqu'à ce qu'un symbole & ou à la fin de la ligne, de sorte que l'ID se trouve de ces également:

http://www.youtube.com/watch?v=9_Hd8hXhg7o 
http://www.youtube.com/watch?feature=youtube_gdata&v=9_Hd8hXhg7o 
http://www.youtube.com/watch?fs=1&v=9_Hd8hXhg7o&feature=youtube_gdata& 
+1

Plutôt que de vérifier pour '&' et '' séparément, vous pouvez probablement vous en tirer simplement en utilisant '\ Wv = (. +?) (& | $)'. En fait, vous pouvez le rendre encore plus facile en utilisant certaines classes de caractères: '[? &] V = (\ w +)' – friedo