为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中删除HTML标记

从字符串中删除HTML标记

www说 2019-06-01 16:13:07
从字符串中删除HTML标记是否有从Java字符串中删除HTML的好方法?简单的正则表达式 replaceAll("\\<.*?>","")会起作用的,但是像这样的事情&amp;不能正确转换,两个尖括号之间的非HTML将被移除(即.*?在regex将会消失)。
查看完整描述

4 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

使用HTML解析器而不是regex。这很简单珍汤.

public static String html2text(String html) {
    return Jsoup.parse(html).text();}

珍汤支座在可自定义的白名单上删除HTML标记,如果只允许使用HTML标记,则非常有用。<b><i><u>.

另见:


查看完整回答
反对 回复 2019-06-01
?
SMILET

TA贡献1796条经验 获得超4个赞

如果你是为了安卓你能做到的.。

android.text.Html.fromHtml(instruction).toString()


查看完整回答
反对 回复 2019-06-01
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

如果用户输入<b>hey!</b>,您想要显示吗?<b>hey!</b>hey!?如果第一种方法是转义较少的符号和html-编码符号(还有可选的引号),那么您就没事了。对代码进行修改以实现第二个选项是:

replaceAll("\\<[^>]*>","")

但是,如果用户输入格式错误的内容,则会遇到问题,例如<bhey!</b>.

你也可以退房吉蒂这将解析“脏”html输入,并为您提供删除标记的方法,保留文本。

试图删除html的问题是,浏览器有非常宽松的解析器,比您可以找到的任何库Will都要宽松,所以即使您尽最大努力去除所有标记(使用上面的替换方法、DOM库或JTidy),您也会这样做。仍然需要确保编码任何剩余的HTML特殊字符,以确保您的输出安全。


查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 735 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信