去除html标签,但包含类的标签除外

问题描述

我需要除去HTML标记(包含类“ classmark”的“ a”标记除外)的正则表达式

让我说我有这个HTML字符串:

 <b>this</b>
 <a href="#">not match</a>
 <a href="#" target="_blank">not match</a>
 <a href="#" class="classmark" target="_blank">match</a>
 <a href="#" class="classmark">match2</a>
 <a class="classmark" target="_blank">match3</a>
 <a class="classmark">match4</a>
 <b>this</b>
 <p>fggfgf</p>

我想要这样的结果:

this
not match
not match
<a href="#" class="classmark" target="_blank">match</a>
<a href="#" class="classmark">match2</a>
<a class="classmark" target="_blank">match3</a>
<a class="classmark">match4</a>
this
fggfgf

我使用此功能剥离HTML标签

 function strip_tags( _html /*you can put each single tag per argument*/ )
{   
    var _tags = [],_tag = "" ;

    for( var _a = 1 ; _a < arguments.length ; _a++ )
   {
    _tag = arguments[_a].replace( /<|>/g,'' ).trim() ;
    
    if ( arguments[_a].length > 0 ) _tags.push( _tag,"/"+_tag );
   }

   if ( !( typeof _html == "string" ) && !( _html instanceof String ) ) return "" ;
   else if ( _tags.length == 0 )
   { 
    return _html.replace( /<(\s*\/?)[^>]+>/g,"" );

   }
   else
   {  
    var _re = new RegExp( "<(?!("+_tags.join("|")+")\s*\/?)[^>]+>","g" );
    return _html.replace( _re,'');
   }

 }
          

它将剥离HTML标记,并仅保留我想要相同功能的特定标记,并添加我需要类似以下内容的class属性:

    strip_tags( HTMLstring,"a","classmark")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)