2010-03-19 6 views
9

Ich möchte regulären Ausdruck in Ruby auf Schienen, die alle HTML-Tags und seinen Inhalt aus dem angegebenen Text entfernen.Rubin auf Schienen regulärer Ausdruck, um HTML-Tags und seinen Inhalt aus dem Text zu entfernen

Zum Beispiel, wenn mein Text ist: -INPUT: -

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

dann sollte es nur OUTPUT angezeigt werden wie folgt sein sollte: -

Hi 

in kurzen i regulären Ausdruck oder eine Funktion wollen welche entfernen <> und was auch immer der Inhalt zwischen <>.

Dank & Grüße,

Salil Gaikwad

Antwort

13

Ihre Zeichenfolge ist recht einfach und diese Lösung könnte funktionieren. Sie sollten das Rad jedoch nicht neu erfinden. Rails enthält bereits einige leistungsstarke sanitization helpers.

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

nur zum hinzufügen, es entfernt keine Zeichen wie   :) – ravi1991

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

Dank gimmy es funktioniert für mich dank einer Million. – Salil

+0

Obwohl die akzeptierte Antwort der eleganteste Weg ist, passt diese Lösung tatsächlich besser zu meinen Bedürfnissen. Vielen Dank! –

1

Tun Sie dies nicht tun. Bitte.

Während Ihre Beispieleingabe ziemlich trivial ist, erwähnen Sie, dass Sie es in einem viel breiteren Bereich verwenden möchten. Statt

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

für Ruby, können Sie versuchen http://hpricot.com/ mit HTML zu analysieren.

+0

Eigentlich muss ich mein Problem lösen, dass in meiner E-Mail, wenn ich als Text anzeigen HTML-Tags zeigt. So ersetze ich meine chat.text.plain.erb mit folgenden Antworten von jimmy <% = @ chat.gsub (/ <\/?[^>) +> /, '')%> und es funktioniert für mich. sowieso danke für deinen Kommentar. Salil – Salil

Verwandte Themen