[英]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>
。
所以我想用<
替换所有<
&all >
与>
& <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("&", "&").replaceAll("<(?!/?\\s*[bi]\\s*>)", "<");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.