views:

221

answers:

3

Hi All,

I want regular expression in ruby on rails which remove all the html tags and its content from the given text.

For example if my text is :-INPUT :-

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

then it should display only OUTPUT should be as follows:-

Hi

in short i want regular expression or a function which remove <> and whatever the content between <>.

Thanks & Regards,

Salil Gaikwad

A: 
'<span id="span_is"><br><br><u><i>Hi</i></u></span>'.gsub(/<\/?[^>]+>/, '')
Jimmy Cuadra
Thanks gimmy it works for me thanks a million.
Salil
A: 

Don't do this. Please.

While your sample-input is fairly trivial, you mention that you want to use it in a lot broader scope.

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

For Ruby, you can try using http://hpricot.com/ to parse HTML instead.

Commander Keen
Actually i need to solve my problem that in my mail when i view as a text it shows html tags.So i replace my chat.text.plain.erb with following as answered by jimmy<%= @chat.gsub(/<\/?[^>]+>/, '') %> and it works for me .anyways thanks for your comment.Salil
Salil
+4  A: 

Your string is quite simple and that solution might work. However, you shouldn't reinvent the wheel. Rails already includes some powerful sanitization helpers.

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