Si l'utilisateur saisit <b>hey!</b>
voulez-vous afficher <b>hey!</b>
ou hey!
? Si c'est la première option, échappez les less-thans et codez les esperluettes en html (et éventuellement les guillemets) et tout ira bien. Une modification de votre code pour implémenter la seconde option serait :
replaceAll("\\<[^>]*>","")
mais vous rencontrerez des problèmes si l'utilisateur saisit quelque chose de malformé, comme <bhey!</b>
.
Vous pouvez également consulter JTidy qui analysera les entrées html "sales", et devrait vous donner un moyen de supprimer les balises, en conservant le texte.
Le problème quand on essaie de dépouiller le html est que les navigateurs ont des analyseurs très indulgents, plus indulgents que n'importe quelle bibliothèque que vous pouvez trouver, donc même si vous faites de votre mieux pour dépouiller toutes les balises (en utilisant la méthode de remplacement ci-dessus, une bibliothèque DOM, ou JTidy), vous aurez toujours vous devez vous assurer de coder tous les caractères spéciaux HTML restants pour garantir la sécurité de votre sortie.
3 votes
Utilisez-le avec le guide suivant : compilez 'org.jsoup:jsoup:1.9.2'.
1 votes
stackoverflow.com/a/3149645/5733853
0 votes
Voir aussi : stackoverflow.com/a/21838532/363573