我需要一些帮助来清理jsoup的用户输入,我想删除所有已知的HTML标记,但如果没有真正的HTML标记,请让<
或>
。
Jsoup.clean("<b>test</b> te<st <test >test", Whitelist.none())
当前的输出是
test tetest
我希望:
test te<st <test >test
感谢您的帮助。
答案 0 :(得分:0)
Jsoup没有提供这种功能。检查以下代码。
import java.util.ArrayList;
import java.util.List;
public class Main {
public static String removeTags(List<String> tags, String source) {
if(tags == null || tags.size() == 0) return source;
StringBuilder strb = new StringBuilder();
for(String tag : tags) {
strb.append(String.format("</?%s.*?>|", tag));
}
return source.replaceAll(strb.substring(0, strb.length() - 1), "");
//strb example : "</?span.*?>|</?em.*?>"
}
public static void main(String[] args) {
try {
String str = "<b>testj</b> te<st <test >test";
List<String> tags = new ArrayList<String>();
tags.add("b");
System.out.println(removeTags(tags, str));
} catch (Exception e) {
e.printStackTrace();
}
}
}