java - JLabel 的转义 HTML

标签 java swing jlabel

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

最佳答案

基于Which characters need to be escaped on 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;
    }
}

关于java - JLabel 的转义 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16252829/

相关文章:

java - JLabel 数组与 Graphics2D 绘画

java - 将图像添加到 Eclipse 可运行 jar + 将其插入 HTML 文件

java - 从 HTTPClient 3.1 迁移到 4.3.3,Method.getResponseBody(int)

java - 我的类是其他泛型类的子类吗?

java - 编译代码时出现错误的操作数错误

java - ajaxswing - 未定义 JAVA_HOME 环境变量

java - 当按钮失去焦点时出现默认按钮

java - 为什么我可以点击隐藏的 JLabel?

java - 在 'for' 循环中设置 JLabel 的文本

java - 如何通过点击html上的按钮来运行java程序