Generar enlaces de Twitter usando jQuery

Comparto un snippet que armé rejuntando varias cosas (si, soy pésimo con regex y tuve que darle un montón de vueltas) porque seguro hay alguien más que necesita que los enlaces de un tweet se generen usando javascript y no está del todo seguro de como resolverlo, como fue mi caso.

El código toma un texto plano escrito para Twitter (seguramente obtenido usando la API) y genera los enlaces básicos usando jQuery. O sea: Se convierten URLs en enlaces, menciones de un usuario (palabras precedidas por “@”) en enlaces a su perfil y hashtags (palabras precedidas por “#”) en enlaces a su búsqueda.

$('.tweet').each(function(){

	var str = $(this).text();
	$(this).empty();

	str = ' '+str;
	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1">$1</a>');
	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2">$2</a>');
	str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2">#$2</a>');

	$(this).append(str);
});

Tengan en cuenta que en el ejemplo se buscan todos los elementos con la clase tweet, que en mi caso es la que tiene el tweet en sí, y cambien esa parte del código según sea necesario.

Si alguien que sepa más javascript que yo tiene alguna sugerencia para mejorarlo, será más que bienvenida.

Comentar este post