Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/11/2012, 11:47
Avatar de Adbane
Adbane
 
Fecha de Ingreso: junio-2011
Mensajes: 86
Antigüedad: 12 años, 10 meses
Puntos: 6
Respuesta: Añadir estilos y url a una palabra cuando se nombra a un user con @ como e

Gracias a los dos! Me ha servido de ayuda, y funciona con expresiones, e incluso me asegurado de que no afecte a correos eléctronicos. Cómo imagino que cualquier otra persona que busque en Google o el foro la misma solución, llegará aqui, dejo el código para el que le interese:

Código Javascript:
Ver original
  1. $('.comment p').each(function(){
  2.     var str = $(this).text();
  3.     $(this).empty();
  4.  
  5.     str = ' '+str;
  6.     str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1<a href="http://misitio.com/usuarios/$2" class="user">@$2</a>');
  7.  
  8.     $(this).append(str);
  9. });

Primero selecciono el texto que hay dentro de ".comment p", lo elimino con la funcion empty(), busco en él las palabras que empiezan por @, y las cambio por la misma palabra, con enlace. Finalmente, con append() vuelvo a insertar el texto con el cambio hecho.

Para hastags podria usarse el mismo código, cambiando la arroba por #, también en la url puedes insertar enlaces de Twitter, para @menciones seria así: "http://twitter.com/$2" y para #hastags así "http://twitter.com/search?q=%23$2".

Ojo con la línea que dice "$(this).text();", aquí yo selecciono el texto dentro de ".comment p" para luego borrarlo, cualquier etiqueta dentro será borrada y al no ser texto plano, no se vuelve a insertar en el append(), para esto mejor usar "$(this).html();".


Gracias por vuestra ayuda, señores :D
__________________
Diseñador web por amor al arte, o al HTML mejor dicho