Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2013, 18:59
Avatar de Adbane
Adbane
 
Fecha de Ingreso: junio-2011
Mensajes: 86
Antigüedad: 12 años, 10 meses
Puntos: 6
Pregunta Expresión regular para enlaces magnet

Hola a todos, tengo una duda que me gustaría que me ayudarais a resolver.

Actualmente estoy usando un script que me pasaron para buscar enlaces y hashtags en un campo, y convertirlos en enlaces de verdad añadiendoles un <a href=""> a cada uno.

El caso es que me gustaría hacer lo mismo con enlaces magnet, he probado varias expresiones regulares que he visto en stackoverflow, pero no logro que me funcionen, y buscando por la web, dificil encontrar algo relacionado con el tema.

A continuación os dejo mi script:
Código Javascript:
Ver original
  1. $('p').each(function(){
  2.         var str = $(this).html();
  3.         $(this).empty();
  4.         str = ' '+str;
  5.         str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([-\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1">$1</a>');
  6.         str = str.replace(/([^[a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ])\#([a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ]+)/gm,'$1<a href="%23$2">#$2</a>');
  7.         $(this).append(str);
  8.     });

Aqui pongo como es la estructura de un enlace de ejemplo de un magnet (es de mentira, no la probeis):
magnet:?xt=urn:btih:asdfg12345lkjh9876&dn=Nombre-de-archivo.zip

Os dejo una información que encontré en un blog:
- magnet: como identificador del enlace en cuestión.
- xt=urn: como identificador de la red. Por ejemplo, para un enlace de BitTorrent tendríamos xt=urn:btih: y para uno de eDonkey sería xt=urn:ed2k:
- A continuación tendríamos el hash completo del archivo, el valor único que lo define.
- &dn= para el nombre del archivo, si se indicara.
Fuente

Sé que estoy pidiendo mucho, pero apenas me desenvuelvo con las expresiones regulares, y he probado varias formas basandome en el script que tengo para los enlaces, pero no logro dar en el clavo. Si pudieras ayudarme, os lo agradeceria.

Muchas gracias de antemano!
__________________
Diseñador web por amor al arte, o al HTML mejor dicho