¿Eliminar caracteres del principio y final de '+ e.link [0] .href +'?

Revisé todas las cosas para eliminar caracteres de las cadenas, pero no entiendo qué está pasando aquí.

Estoy usando un secuencia de comandos de jQuery para obtener videos de un canal de Youtube y los muestra con enlaces al video. En la misma página he incrustado un video usando el código iframe. Configuré los videos para que se abrieran en el objetivo, que es el iframe. Sin embargo, las URL no funcionan.

  • La URL debería ser: http://www.youtube.com/embed/VIDEO_ID
  • URL actual: http://www.youtube.com/watch?v=VIDEO_ID&feature=youtube_gdata

(Enlaces rotos porque los nuevos usuarios no pueden publicar más de 2 enlaces)

Necesito eliminar el extra, así que lo que quería hacer era eliminar http://www.youtube.com/watch?v= desde el principio y &feature=youtube_gdata desde el final luego agrega http://www.youtube.com/embed/ de vuelta al principio.

Sin embargo, el enlace parece ser algún tipo de evento y simplemente no pude averiguar cómo hacerlo.

 + e.link[0].href + 

Lo anterior es cómo aparece el enlace en el javascript.

¿Cómo puedo hacer el enlace que necesito de esto?

Muchas gracias Jack Clarke

preguntado el 10 de marzo de 12 a las 00:03

3 Respuestas

Puede obtener la identificación del video de la URL anterior y construir una nueva URL como esta:

var origURL = "http://www.youtube.com/watch?v=ayYNAEs0few&feature=youtube_gdata";
var matches = origURL.match(/(&|\?)v=([^&]+)/);
var newURL = "http://www.youtube.com/embed/" + matches[2];

// newURL == http://www.youtube.com/embed/ayYNAEs0few

Ejemplo de trabajo: http://jsfiddle.net/jfriend00/zwcgL/.

Usando esta técnica de extraer la ID de video real de la URL original, puede construir cualquier otro tipo de URL que la use con una simple adición de cadena.

respondido 10 mar '12, 01:03

Probablemente haya una manera más fácil de hacer lo que quieres hacer, pero una forma realmente rápida sería hacer algo como:

var link = "http://www.youtube.com/watch?v=12345678";

link.replace('http://www.youtube.com/watch?v=','');

// link now = 12345678

Entonces podrías usar eso para agregar a una cadena.

link2 = 'http://www.youtube.com/watch?v=' + link;

respondido 10 mar '12, 00:03

 var original = "http://www.youtube.com/watch?v=VIDEO_ID&feature=youtube_gdata";
 var changed = original
                 .replace( "http://www.youtube.com/watch?v=", "http://www.youtube.com/embed/")
                 .replace( "&feature=youtube_gdata", "");

 alert( changed ); // shows "http://www.youtube.com/embed/VIDEO_ID"

respondido 10 mar '12, 00:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.