3

我想在启用 HTML 的 JLabel 中显示不安全的文本(来自用户),例如<html><p>Unsafe user input here</p></html>. 我应该怎么做才能转义用户提供的字符串数据以适应我的启用 HTML 的环境而不会造成任何麻烦?

4

1 回答 1

0

基于哪些字符需要在 HTML 上转义?我建议以下代码:

public class SimpleEscaping {

    private static final Pattern[] patterns = new Pattern[]{
        Pattern.compile("&"),
        Pattern.compile("<"),
        Pattern.compile(">")
    };
    private static final String[] replacements = {
        "&amp;",
        "&lt;",
        "&gt;"
    };

    public static String escapeHTML(String input) {
        for (int i = 0; i < patterns.length; i++)
            input = patterns[i].matcher(input).replaceAll(replacements[i]);
        return input;
    }
}
于 2015-06-19T14:01:04.957 回答