这样做是不是很麻烦,
要过滤到所有的html标签,
我记得jstl标准标签库里面有个C:out标签,
已经具有过滤的效果

解决方案 »

  1.   

    String result=test.throwOffHTMLAppointOutSide(str,"b,p");/**删除除指定标签param之外的所有html标签
         * @param str 操作字符串
         * @param param 需要保留的标签(保留多个用 ',' 分隔)
         * */
        public static String throwOffHTMLAppointOutSide(String str,String param){
    StringBuilder sb=new StringBuilder("<(?!\\s*/?\\s*(?:");
    if (str == null || param==null )
    {
        return "";
    }
    else
    {
        String[] arrayParam=param.split(",");
        for(int i=0;i<arrayParam.length;i++){
    sb.append(arrayParam[i]);
    if(i!=arrayParam.length-1){
        sb.append("|");
    }
        }
        sb.append("))[^>]+>");
    }
    return str.replaceAll(sb.toString(), "");
        }    
      

  2.   

    这个好像有点小bug,没有把js过滤掉,呵呵,
    如果楼主想把js也过滤掉的话,可以在下面加一些代码:
    str=str.replaceAll("<script[^>]*>[^<]+</script>","");
      

  3.   

    <table   id="tbl1"   class="MsoNormalTable"   border="1"   cellspacing="0"   cellpadding="0"   style="border-collapse:   collapse;   border:   medium   none">   
          <tr>   
              <td   width="91"   valign="top"   style="width:   68.4pt;   border:   1.0pt   solid   windowtext;   padding-left:   5.4pt;   padding-right:   5.4pt;   padding-top:   0cm;   padding-bottom:   0cm;   background:   #E0E0E0">   
              <p   class="MsoNormal"><span   style="font-family:   宋体">表名</span></td>   
          </tr>   
      </table>   
        
      <script>   
      alert(tbl1.outerHTML)   
      var   objTable=document.createElement("TABLE"),newTr,newTd;   
      objTable.id="tbl1";   
      objTable.className="myclass";   
      for(var   i=0;i<tbl1.rows.length;i++){   
      newTr=objTable.insertRow();   
      for(var   j=0;j<tbl1.rows[i].cells.length;j++){   
      newTd=newTr.insertCell();   
      newTd.colSpan=(tbl1.rows[i].cells[j].colSpan==null?1:tbl1.rows[i].cells[j].colSpan);   
      newTd.rowSpan=(tbl1.rows[i].cells[j].rowSpan==null?1:tbl1.rows[i].cells[j].rowSpan);   
      newTd.innerText=tbl1.rows[i].cells[j].innerText;   
      }   
      }   
      tbl1.outerHTML=objTable.outerHTML;   
      alert(document.all('tbl1').outerHTML)   
      </script>