首页 > 语言 > JavaScript > 正文

javascript清理table样式

2024-05-06 16:23:03
字体:
来源:转载
供稿:网友

本文给大家讲解的是使用javascript实现去除多余的TABLE的样式,主要通过结合正则表达式来实现,非常的简单实用,有需要的小伙伴可以参考下。

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

html部分代码如下:

 

 
  1. <p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"
  2. <o:p>文字中华人民共和国文字中华人民共和国文字中华人民共和国</o:p> 
  3. </span></p> 
  4. <table> 
  5. <tbody> 
  6. <tr style="height:13.5pt"
  7. <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"
  8. <o:p></o:p> 
  9. </span></span></p></td> 
  10. <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"
  11. <o:p></o:p> 
  12. </span></span></p></td> 
  13. <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"
  14. <o:p></o:p> 
  15. </span></span></p></td> 
  16. <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"
  17. <o:p></o:p> 
  18. </span></span></p></td> 
  19. </tr> 
  20. <tr style="height:13.5pt"
  21. <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"
  22. <o:p></o:p> 
  23. </span></span></p></td> 
  24. <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"
  25. <o:p></o:p> 
  26. </span></p></td> 
  27. </tr> 
  28. </tbody> 
  29. </table> 
  30. <p class="MsoNormal"><span style="font-family:宋体;color:#1F497D">文字中华人民共和国文字中华人民共和国文字中华人民共和国。</span><span lang="EN-US" style="color:#1F497D"
  31. <o:p></o:p> 
  32. </span></p> 

JS脚本如下:

 

 
  1. /* 
  2. *格式化内容,str即是html格式的字符串 
  3. */ 
  4. function formatContent(str){ 
  5. str=str.replace(/<//?(html|head|title|meta|body)/b[^>]*>/ig,""); 
  6. str=str.replace(/<table[^>]*>/ig,"<table>"); 
  7. return str; 
  8. str=str.replace(/(<tr[^>]*>)/ig, function (a, b) { 
  9. if(a.indexOf('rowspan')>-1){ 
  10. a=a.replace(/([a-z]+)="([^"]+)?"/ig,function(c,d,e){ 
  11. return d === 'rowspan' ? (d + '="' + e + '"') : ''
  12. }) 
  13. return a; 
  14. }else
  15. return '<tr>'
  16. }); 
  17. str=str.replace(/(<td[^>]*>)/ig, function (a, b) { 
  18. if(a.indexOf('colspan')>-1){ 
  19. a=a.replace(/([a-z]+)="([^"]+)?"/ig,function(c,d,e){ 
  20. return d === 'colspan' ? (d + '="' + e + '"') : ''
  21. }) 
  22. return a; 
  23. }else
  24. return '<td>'
  25. }); 
  26. return str; 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选