2010-03-19 12 views
9

Quiero expresión regular en ruby ​​on rails que elimine todas las etiquetas html y su contenido del texto dado.ruby ​​on rails expresión regular para eliminar etiquetas html y su contenido del texto

Por ejemplo, si mi texto es: -ENTRADA: -

<span id="span_is"><br><br><u><i>Hi</i></u></span> 

entonces sólo debe indicar salida debe ser de la siguiente manera: -

Hi 

en corto tiempo quiero expresión regular o una función que eliminan <> y cualquiera que sea el contenido entre <>.

, gracias & Saludos,

Salil Gaikwad

Respuesta

13

Su cadena es bastante simple y esa solución podría trabajar. Sin embargo, no debes reinventar la rueda. Rails ya incluye algunos poderosos sanitization helpers.

string = '<span id="span_is"><br><br><u><i>Hi</i></u></span>' 
strip_tags(string) 
+0

solo para agregar, no elimina caracteres como   :) – ravi1991

14
'<span id="span_is"><br><br><u><i>Hi</i></u></span>'.gsub(/<\/?[^>]+>/, '') 
+0

Gracias gimmy funciona para mí un millón de gracias. – Salil

+0

Aunque la respuesta aceptada es la más elegante, esta solución realmente se adapta mejor a mis necesidades. ¡Gracias! –

1

No haga esto. Por favor.

Si bien la entrada de muestra es bastante trivial, mencione que desea utilizarla en un ámbito mucho más amplio.

http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

Para Ruby, puede probar a usar http://hpricot.com/ a analizar HTML en su lugar.

+0

En realidad tengo que resolver mi problema que en mi correo cuando lo veo como un texto muestra etiquetas html. Así que reemplazo mi chat.text.plain.erb con following según lo respondido por jimmy <% = @ chat.gsub (/ <\/?[^>] +> /, '')%> y funciona para mí. de todos modos gracias por su comentario. Salil – Salil

Cuestiones relacionadas