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
$('p').each(function(){ var str = $(this).html(); $(this).empty(); str = ' '+str; str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([-\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1">$1</a>'); str = str.replace(/([^[a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ])\#([a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ]+)/gm,'$1<a href="%23$2">#$2</a>'); $(this).append(str); });
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!