有这样一段字符串:  <table><tr><td>......中文OK......<img src="aa.jpg" alt=""/><br/>......<a href="aa.php">哈哈</a>......</td></tr></table>只想保留"中文OK......<img src="aa.jpg" alt=""/><br/>......<a href="aa.php">哈哈</a>......"这样的内容,其余的html标签全部过滤掉,使用正则实现,请问如何写这样的正则?

解决方案 »

  1.   

    var str='<table> <tr> <td>......中文OK...... <img src="aa.jpg" alt=""/> <br/>...... <a href="aa.php">哈哈 </a>...... </td> </tr> </table> '
    str=str.replace(/<\/?(table|tr|td)[^>]*>/gi,'');//如果还有其他要去掉的标签,修改此正则
    alert(str);
      

  2.   

    要去掉的  html  标签太多了,还有ubb等其他标签,我只想保留 img, br, a三种标签,其余全部去掉。
      

  3.   

    还有  wap 里的所有标签都有去掉,例如<wml>  <card>  <p> 等等,如果都加到 (table|tr|td) 里,有点复杂了,有没有更简单的方法?
      

  4.   

    str=str.replace(/<\/?(?!img|br|a).*?[^>]*>/gi,'');
    试试
      

  5.   

    str = str.replace(/<\/?(?!img|a|br)\b[^>]*>/gi,'');
      

  6.   

    不行。测试程序:
    var str = "<img src='aaa.jpg'/><table>";
    str = str.replace( / <\/?(?!img|br|a).*?[^>]*>/gi,'' );
    alert( str );
      

  7.   

    重新发测试程序:
    var str = "<html>肯定分开放开发<wml><img src='aaa.jpg' alt=''/>哈哈<card>客人客人aadd</card><a href='aa.html'>kkk咔咔咔</a>老头老太两天<br/><tr><td></table>";
    str=str.replace(/<\/?(?!img|br|a).*?[^>]*>/gi,'');
    alert(str);已经非常好了,感谢,但还有点小问题,把</a>也给过滤掉了,我先自己研究一下。
      

  8.   


    //try
    var str='<table> <tr> <td>......中文OK...... <img src="aa.jpg" alt=""/> <br/>...... <a href="aa.php">哈哈 </a>...... </td> </tr> </table> '
    str=str.replace(/<\/?(?!(img|a|br))[^>]*>/gi,'');
    alert(str);
      

  9.   

    呵呵,解决了,稍微修改了一下测试程序:
    var str = "<html><img src='bbb.jpg' alt=''/>肯定分开放开发<wml><img src='aaa.jpg' alt=''/>哈哈<a href='bb.html'>几句</a><card>客人客人aadd</card><br/><a href='aa.html'>kkk咔咔咔</a>老头老太两天<br/><tr><td></table>";
    str = str.replace( /<(?!(img|a|\/a|br))[^>]*>/gi,'' );
    alert(str);非常感谢大家,散分,分不多,大家海涵啊