加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 用于从字符串中删除HTML标记的正则表达式

发布时间:2020-12-15 08:38:18 所属栏目:Java 来源:网络整理
导读:我正在寻找一个正则表达式来从JSP中删除字符串中的所有 HTML标记. 例1 sampleString = "test string iin italics/i continues"; 例2 sampleString = "test string iin italics"; 例3 sampleString = "test string i"; HTML标记可能是完整的,部分的(没有关闭
我正在寻找一个正则表达式来从JSP中删除字符串中的所有 HTML标记.

例1

sampleString = "test string <i>in italics</i> continues";

例2

sampleString = "test string <i>in italics";

例3

sampleString = "test string <i";

HTML标记可能是完整的,部分的(没有关闭标记)或没有正确的起始标记(在第3个示例中缺少关闭角括号)本身.

提前致谢

解决方法

使用正则表达式或解析器无法使用案例3.它可能代表合法内容.所以忘了它.

至于涵盖案例1和案例2的具体问题,只需使用HTML解析器即可.我最喜欢的是Jsoup.

String text = Jsoup.parse(html).text();

而已.顺便说一句,它也是HTML cleaner,如果那是你真正追求的.

由于您使用的是JSP,因此您也可以使用JSTL< c:out>或者fn:escapeXml()以避免用户控制的HTML输入在HTML中内联(这可能因此打开XSS漏洞).

<c:out value="${bean.property}" />
<input type="text" name="foo" value="${fn:escapeXml(param.foo)}" />

然后不会解释HTML标记,而只是显示为纯文本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读