2010-03-19 4 views
9

Je veux une expression régulière en rubis sur rails qui supprime toutes les balises html et son contenu du texte donné.ruby ​​on rails expression régulière pour supprimer les balises html et son contenu du texte

Par exemple, si mon texte est: -input: -

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

alors il devrait afficher que la sortie doit être comme suit: -

Hi 

bref je veux expression régulière ou une fonction qui supprime <> et quel que soit le contenu entre <>.

Merci & Cordialement,

Salil Gaikwad

Répondre

13

Votre chaîne est assez simple et cette solution peut fonctionner. Cependant, vous ne devriez pas réinventer la roue. Rails comprend déjà quelques puissants sanitization helpers.

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

juste pour ajouter, il ne supprime pas les caractères comme :) – ravi1991

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

Merci gimmy cela fonctionne pour moi grâce à un million. – Salil

+0

Bien que la réponse acceptée soit la façon la plus élégante d'aller, cette solution répond mieux à mes besoins. Je vous remercie! –

1

Ne pas faire cela. S'il vous plaît.

Alors que votre entrée d'échantillon est assez triviale, vous mentionnez que vous voulez l'utiliser dans un cadre beaucoup plus large.

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

Pour Ruby, vous pouvez essayer d'utiliser http://hpricot.com/ pour analyser HTML à la place.

+0

En fait, j'ai besoin de résoudre mon problème que dans mon courrier quand je vois comme un texte, il montre des balises html. Donc je remplace mon chat.text.plain.erb avec suivant comme répondu par jimmy <% = @ chat.gsub (/ <\/?[^>] +> /, '')%> et cela fonctionne pour moi. de toute façon merci pour votre commentaire. Salil – Salil

Questions connexes