Comment faire pour supprimer des balises HTML à partir de la chaîne
Disons que j'ai:
@string = "it is a <a href="#">string</a>"
Je veux l'utiliser dans les différentes parties de mon application de deux façons:
- Avec un lien cliquable
- Sans lien cliquable (mais pas le balisage HTML)
Le premier peut être fait en utilisant html_safe
:
@string.html_safe
C'est un chaîne
Comment puis-je atteindre le second?
C'est une chaîne.
- Possible Dupilcate: stackoverflow.com/questions/7414267/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ceci:
Voir strip_tags(html).
Vous pouvez essayer ceci:
Vous pouvez utiliser
nokogiri
à faire de même.Ce DONC, après les raconte l'histoire.
Voici en bref:
Il utilise XPath est
starts-with
fonction:Vous devez d'abord définir comme ceci:
Ci-dessus donnera à la sortie html. Ensuite, vous pouvez utiliser XPath.
Pour utilisation générale (par exemple, web grattoir):
Dans les Rails, voir aussi la strip_tags méthode. http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Rails fournit une méthode appelée
strip_links
, qui semble faire ce que vous voulez (à la recherche à son nom).Selon son APIDock page c'est un peu limité. Afin de la rendre applicable à un/une chaîne, vous pouvez étendre la classe string:
De sorte que vous pouvez utiliser:
sanitize
méthode supprime tout le code HTML... (C'est dans le même module d'aide)