Expresiones regulares para dar formato a un Tweet
Autor: aartiles | Archivado en: JavaScript, PHP el día 6/Ene/2010
Deprecated: Function eregi() is deprecated in /home/bitacora/public_html/wp-content/plugins/wp-codebox/main.php on line 171
Deprecated: Function eregi() is deprecated in /home/bitacora/public_html/wp-content/plugins/wp-codebox/main.php on line 171
Las expresiones regulares es una de las ramas de la programación que más exprime nuestra creatividad, capaces de convertir un complejo algoritmo de parsing en una simple línea de código. A mi particularmente se me dan regulares las expresiones regulares xD, por ello tengo mi propia lista de expresiones favoritas y hoy os compartiré la más moderna de ellas relacionada con Twitter y que he utilizado en mis últimas twitapps LocaFollow y FollowFriday.
Se trata de un conjunto de expresiones que identifican y dan formato a las diferentes partes de un Tweet:
- Encuentra las URLs convirtiéndolas en enlaces con la etiqueta <a>
- Encuentra las menciones a usuarios de la forma @nombre_usuario, convirtiéndola en enlaces con la etiqueta <a> hacia http://twitter.com/nombre_usuario
- Encuentra los hashtags de la forma #parabra, convirtiéndolos en enlaces con la etiqueta <a> que apuntan hacia http://search.twitter.com/search?q=palabra
Ejemplo
Vota @e24presenter en el concurso #bbvaopentalent http://bit.ly/8V98vZ
Os dejo las implementaciones javascript y php:
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function linkify($status_text, $links = true, $mentions = true, $hashtags = true) { // dar formato a URLs if ($links) { $status_text = preg_replace( '/(https?:\/\/\S+)/', '<a href="\1?phpMyAdmin=Za64-l76GuOml1u3RA%2Cqg1O5lQ6">\1</a>', $status_text ); } // dar formato a las menciones if ($mentions) { $status_text = preg_replace( '/(^|\s)@(\w+)/', '\1@<a href="http://twitter.com/\2">\2</a>', $status_text ); } // dar formato a hastags if ($hasttags) { $status_text = preg_replace( '/(^|\s)#(\w+)/', '\1#<a href="http://search.twitter.com/search?q=%23\2">\2</a>', $status_text ); } return $status_text; } |
Javascript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function linkify(status_text, links, mentions, hashtags) { // dar formato a URLs if (links) { status_text = status_text.replace(/(https?:\/\/\S+)/gi,'<a href="$1?phpMyAdmin=Za64-l76GuOml1u3RA%2Cqg1O5lQ6">$1</a>'); } // dar formato a las menciones if (mentions) { status_text = status_text.replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>'); } // dar formato a hastags if (hashtags) { status_text = status_text.replace(/(^|\s)#(\w+)/g,'$1#<a href="http://search.twitter.com/search?q=%23$2">$2</a>'); } return status_text; } |
Inspiración: Linkify Your Twitter Feed por David Walsh.
Tags: expresiones regulares, JavaScript, PHP, regexp, twitter
Posts Relacionados












Información Bitacoras.com…
Valora en Bitacoras.com: Las expresiones regulares es una de las ramas de la programación que más exprime nuestra creatividad, capaces de convertir un complejo algoritmo de parsing en una simple línea de código. A mi particularmente se me dan regul…
Os dejo el equivalente en c#
http://pastebin.com/d4f87c7ed
[...] el twitter he visto el excelente artículo de Alfredo Artiles sobre Expresiones regulares para dar formato a un Tweet , este excelente profesional ha desarrollado funciones para php y javascript y despues de leer su [...]