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$('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!