javascript格式化table标签内容

项目中遇到这样的需求,一大段文章正文的html代码在手机中显示不全,原因是由于其它有table,而table表格中的tr/td都携带了从word中粘贴过来的样式,需要将这一大段的字符串中的table、tr、td中携带的样式清除掉,同时还不能破坏table结构,即要保留tr中的rowspan和td中的colspan属性。

html部分代码如下:

<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US">
  <o:p>文字中华人民共和国文字中华人民共和国文字中华人民共和国</o:p>
  </span></p>
<table>
  <tbody>
    <tr style="height:13.5pt">
      <td width="117" style="width:88.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:宋体;color:#1F497D">项目<span lang="EN-US">
          <o:p></o:p>
          </span></span></p></td>
      <td width="137" style="width:103.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:宋体;color:#1F497D">金额<span lang="EN-US">
          <o:p></o:p>
          </span></span></p></td>
      <td width="153" style="width:115.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:宋体;color:#1F497D">经办人<span lang="EN-US">
          <o:p></o:p>
          </span></span></p></td>
      <td width="135" style="width:101.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:宋体;color:#1F497D">是否有发票<span lang="EN-US">
          <o:p></o:p>
          </span></span></p></td>
    </tr>
    <tr style="height:13.5pt">
      <td width="117" style="width:88.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:宋体;color:#1F497D">合计<span lang="EN-US">
          <o:p></o:p>
          </span></span></p></td>
      <td colspan="3" valign="bottom" nowrap="" style="width:103.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt"><p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" style="font-size:11.0pt;font-family:宋体;color:black">
          <o:p></o:p>
          </span></p></td>
    </tr>
  </tbody>
</table>
<p class="MsoNormal"><span style="font-family:宋体;color:#1F497D">文字中华人民共和国文字中华人民共和国文字中华人民共和国。</span><span lang="EN-US" style="color:#1F497D">
  <o:p></o:p>
  </span></p>

JS脚本如下:

/*

*格式化内容,str即是html格式的字符串

*/
function formatContent(str){
    str=str.replace(/<\/?(html|head|title|meta|body)\b[^>]*>/ig,"");
    str=str.replace(/<table[^>]*>/ig,"<table>");
    return str;
    str=str.replace(/(<tr[^>]*>)/ig, function (a, b) {
        if(a.indexOf(‘rowspan‘)>-1){
            a=a.replace(/([a-z]+)="([^"]+)?"/ig,function(c,d,e){
                return d === ‘rowspan‘ ? (d + ‘="‘ + e + ‘"‘) : ‘‘;
            })
            return a;
        }else{
            return ‘<tr>‘;
        }
    });
    str=str.replace(/(<td[^>]*>)/ig, function (a, b) {
        if(a.indexOf(‘colspan‘)>-1){
            a=a.replace(/([a-z]+)="([^"]+)?"/ig,function(c,d,e){
                return d === ‘colspan‘ ? (d + ‘="‘ + e + ‘"‘) : ‘‘;
            })
            return a;
        }else{
            return ‘<td>‘;
        }
    });
    return str;
}

时间: 2024-12-25 21:39:03

javascript格式化table标签内容的相关文章

JavaScript和jQuery改变标签内容

HTML: <div id="mazey">content</div> JavaScript: var mazey=document.getElementById("mazey"); mazey.innerHTML=data; jQuery: $("#mazey").html(data); JavaScript和jQuery改变标签内容

区别CSS中display:box;inline;none以及HTML中 &lt;frame&gt; 标签&lt;table&gt; 标签的 frame 属性

区别display:box:display:inline:display:none三者的不同 display:block的特点是: block是Display默认的值.总是在新行上开始:该对象随后的内容自动换行;行高以及顶和底边距都可控制:宽度缺省是它的容器的100%,除非设定一个宽度:<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子,意思是他们默认显示方式是block: display:inl

table标签总结

一.table标签:定义一个表格简单表格由table元素以及一个或多个tr(行标签).th(表头单元格标签).td(普通单元格标签) <table border=1><tr><th>表头1</th><th>表头2</th></tr><tr><td>内容1</td><td>内容2</td></tr></table>复杂的表格还包括captio

&lt;table&gt;标签总结(colspan跨列 ,rowspan跨行)

table标签有些内置属性要设置: <table cellpadding="0" cellspacing="0" border="0" summary="各银行的网上银行支付限额总表"> 1.摘要summary的内容是不会在浏览器中显示出来的.它的作用是增加表格的可读性(语义化), 使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容. 2.

FineReport中如何用JavaScript自定义地图标签

在日常使用地图过程中,通常会遇到地图标签,提示点等显示不满足我们的需求,需要进行JavaScript代码编写. 例如:在使用地图过程中,会发现很多地名显示的位置偏离.这时候就需要使用JavaScript进行调控.以黑龙江和内蒙古为例,来介绍下如何在FineReport中利用JavaScript自定义地图标签. 新建地图 以区域地图为例,新建表单,拖入地图(新特性)组件,地图边界选择区域地图下的中国(省级): 数据准备 新建工作簿,添加数据集ds1,SELECT*FROM地图1,选中图表,选择图表

使用select下拉菜单筛选table表格内容

使用select下拉菜单筛选table表格内容:本章节介绍一下如何利用select下拉菜单对表单的内容进行筛选,如果数据量庞大,便于搜索使用的话,筛选效果还是非常有必要的,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&qu

HTML中javascript的&lt;script&gt;标签使用方法详解

原文地址:HTML中javascript的<script>标签使用方法详解 只要一提到把JavaScript放到网页中,就不得不涉及Web的核心语言--HTML.在当初开发javascript的时候,Netscape要解决的一个重要问题就是如何做到让JavaScript既能与HTML页面共存,又不影响那些页面在其他浏览器中的呈现效果.经过尝试.纠错和争论,最终的决定就是为Web增加统一的脚本支持.而Web诞生早期的很多做法也都保留了下来,并被正式纳入HTML规范当中. <script&g

jQuery_review之table根据内容分组进行折叠显示以及,折叠之后高亮显示的实现

对于表格而言,应当提供丰富的功能,从而让用户有不同的感觉.例如,需要根据性质进行各种分组.现在很多RIA的第三方的软件都有很多非常强大的功能来提供对数据的筛选,分类,以及各种统计.现在通过对表单元组内容的分组来进行折叠,并且对折叠之后的内容进行高亮显示. 这个地方的难点在于,如何来维护一个分组名称和分组之间的数据的关系,我们可以通过一些属性来进行维护,例如对cospan的列指定一个class属性,名字叫做col,他的组成元素分别命名为col1,col2这样就可以通过[attribute^=col

HTML——表格table标签,tr或者td

表格定义和用法 <tr> 标签定义 HTML 表格中的行. tr 元素包含一个或多个 th 或 td 元素. HTML 与 XHTML 之间的差异 在 HTML 4.01 中,tr 元素的 "bgcolor" 是不被赞成使用的. 在 XHTML 1.0 Strict DTD 中,tr 元素的 "bgcolor" 是不被支持的. 可选的属性 属性 值 描述 align right left center justify char 定义表格行的内容对齐方式.