繁体   English   中英

如何使用Java Regex清理仅接受和 html

[英]How to use Java Regex to sanitize html that accept only <b> and <i> tag?

好的,可以说我有textarea ,用户可以在其中输入任何类型的文本。

然后,我想将此文本放入div元素中。 例如,

document.getElementById('myDiv').innerHTML=text;

问题是用户可以将html代码放入其中,并且可能会使div变形。 但是,文本可以包含<b><i>

所以我想用&lt;替换所有< &all >&gt; <b><i>除外。

请注意:允许在i前后放置空格,因此我们将保留<i >< i>< i >等等。此外, <b> / </b><i> / </i>必须插入对。 这意味着如果存在<b>但没有</b>则它应该转义<b> ,并且应该对<i>做同样的事情。

因此,如何使用Java Regex清除仅接受<b><i>标记的html?

您不能与正则表达式强制配对,但是如果您只想消除除<b><i>及其匹配的结束标记之外的所有html构件,则需要两个replaceAll()调用。

input.replaceAll("&", "&amp;").replaceAll("<(?!/?\\s*[bi]\\s*>)", "&lt;");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM