package cn.cslg.pas.common.utils;

/**
 * @Author chenyu
 * @Date 2023/6/27
 */
public class RemoveHtmlTagsUtils {

    /**
     * 去除字符串文本中的所有HTML格式标签
     *
     * @param xmlText 字符串文本
     * @return 返回修改后的字符串文本
     */
    public static String removeHtmlTags(String xmlText) {
        //定义script的正则表达式，去除js可以防止注入
        String scriptRegex = "<script[^>]*?>[\\s\\S]*?</script>";
        //定义style的正则表达式，去除style样式，防止css代码过多时只截取到css样式代码
        String styleRegex = "<style[^>]*?>[\\s\\S]*?</style>";
        //定义HTML标签的正则表达式，去除标签，只提取文字内容
        String htmlRegex = "<[^>]+>";
        //定义空格,回车,换行符,制表符
        //String spaceRegex = "\\s*|\t|\r|\n";
        // 过滤script标签
        xmlText = xmlText.replaceAll(scriptRegex, "");
        // 过滤style标签
        xmlText = xmlText.replaceAll(styleRegex, "");
        // 过滤html标签
        xmlText = xmlText.replaceAll(htmlRegex, "");
        // 过滤空格,回车,换行符,制表符等
        //instructionText = instructionText.replaceAll(spaceRegex, "");
        // 过滤空格&nbsp;、&nbsp、&NBSP
        xmlText = xmlText.replace("&nbsp;", "");
        xmlText = xmlText.replace("&nbsp", " ");
        xmlText = xmlText.replace("&NBSP", " ");
        return xmlText;
    }

}
