我现在有以下一段HTML文本
<TABLE style="WIDTH: 738pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=983>
<COLGROUP>
<COL style="WIDTH: 53pt; mso-width-source: userset; mso-width-alt: 2272" width=71>
<COL style="WIDTH: 49pt; mso-width-source: userset; mso-width-alt: 2080" width=65>
<COL style="WIDTH: 76pt; mso-width-source: userset; mso-width-alt: 3232" width=101>
<COL style="WIDTH: 84pt; mso-width-source: userset; mso-width-alt: 3584" width=112>
<COL style="WIDTH: 76pt; mso-width-source: userset; mso-width-alt: 3232" width=101>
<COL style="WIDTH: 101pt; mso-width-source: userset; mso-width-alt: 4320" span=2 width=135>
<COL style="WIDTH: 59pt; mso-width-source: userset; mso-width-alt: 2528" width=79>
<COL style="WIDTH: 68pt; mso-width-source: userset; mso-width-alt: 2880" width=90>
<COL style="WIDTH: 71pt; mso-width-source: userset; mso-width-alt: 3008" width=94>
<TBODY>
<TR style="HEIGHT: 71.25pt" height=95>
<TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 102pt; HEIGHT: 71.25pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl66 height=95 width=136 colSpan=2><FONT face=宋体>本单位数量<BR>(名)</FONT></TD>
<TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; WIDTH: 76pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl66 width=101><FONT face=宋体>下派数量<BR>(人次)</FONT></TD>
</TR></TBODY></TABLE>
================================================================
现在求一段正则表达式,能够使上述输出为
<TABLE>
<TR>
<TD colSpan=2>本单位数量(名)</TD>
<TD>下派数量(人次)</TD>
</TR>
</TABLE>

解决方案 »

  1.   

    try:/(?:style="[^>]+|<(?:col|/?tbody|/?font|br)[^>]*>)/gi
      

  2.   

    var html='...';
    var reg=/(?:style[^>]+|<(?:col|/?tbody|/?font|br)[^>]*>)/gi;
    html=html.replace(reg,'');
      

  3.   

    别问我怎么写出来的 我快崩溃了
    var str = '<TABLE style="WIDTH: 738pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=983><COLGROUP><COL style="WIDTH: 53pt; mso-width-source: userset; mso-width-alt: 2272" width=71><COL style="WIDTH: 49pt; mso-width-source: userset; mso-width-alt: 2080" width=65><COL style="WIDTH: 76pt; mso-width-source: userset; mso-width-alt: 3232" width=101><COL style="WIDTH: 84pt; mso-width-source: userset; mso-width-alt: 3584" width=112><COL style="WIDTH: 76pt; mso-width-source: userset; mso-width-alt: 3232" width=101><COL style="WIDTH: 101pt; mso-width-source: userset; mso-width-alt: 4320" span=2 width=135><COL style="WIDTH: 59pt; mso-width-source: userset; mso-width-alt: 2528" width=79><COL style="WIDTH: 68pt; mso-width-source: userset; mso-width-alt: 2880" width=90><COL style="WIDTH: 71pt; mso-width-source: userset; mso-width-alt: 3008" width=94><TBODY><TR style="HEIGHT: 71.25pt" height=95><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 102pt; HEIGHT: 71.25pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl66 height=95 width=136 colSpan=2><FONT face=宋体>本单位数量<BR>(名)</FONT></TD><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; WIDTH: 76pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl66 width=101><FONT face=宋体>下派数量<BR>(人次)</FONT></TD></TR></TBODY></TABLE>'
    var reg1 = /(<(?!\/?TABLE|\/?TR|\/?TD)[^>]+>|\s+((?!colspan)[^><\s])+(?=[^>]*>))/ig;
    alert(str.replace(reg1,''));
      

  4.   

    你的转义没弄 
    难点在哪你看到了吗。代表我都快崩溃了
    <TABLE>
    <TR>
    <TD colSpan=2>本单位数量(名)</TD>
    <TD>下派数量(人次)</TD>
    </TR>
    </TABLE>
      

  5.   

    我直接无视掉了colSpan=2 
    我测试的结果是:<TABLE >
    <TR >
    <TD >本单位数量(名)</TD>
    <TD >下派数量(人次)</TD>
    </TR></TABLE>
      

  6.   

    colSpan=2 确实也让我很无奈~~~