能去除HTML,也能设置白名单,如果设了白名单则已设的HTML标签不会被过滤,其它不在白名单中的标签仍然全部被过滤。求这样一个类,多谢了。

解决方案 »

  1.   

    建议楼主这样做:
    1、可以先把在白名单中的标签replace为其他的非html的字符,
    2、然后调用我的这个方法:
    /**
     * 功能:去掉所有的<*>标记
     * 
     * @param content
     * @return
     */
    public String removeTagFromText(String content) {
    Pattern p = null;
    Matcher m = null;
    String value = null; // 去掉<>标签
    p = Pattern.compile("(<[^>]*>)");
    m = p.matcher(content);
    String temp = content;
    while (m.find()) {
    value = m.group(0);
    temp = temp.replace(value, "");
    } // 去掉换行或回车符号
    p = Pattern.compile("(\r+|\n+)");
    m = p.matcher(temp);
    while (m.find()) {
    value = m.group(0);
    temp = temp.replace(value, " ");
    // System.out.println("....." + value);
    } return temp;
    }
    3、在把白名单的标签给replace回来
    4、搞定
      

  2.   

    谢谢二楼的朋友,不知还有没有其它方法。我以前用php,有个自带函数很爽strip_tags()