javascript中使用正则表达式清理table样式的代码


Posted in Javascript onApril 01, 2020

项目中遇到这样的需求,一大段文章正文的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;
}

三水点靠木小编再给大家推荐一个

//表格替换 
str=str.replace(/<table[^<>]*>/ig, "<table>");
str=str.replace(/<thead[^<>]*>/ig, "<thead>");
str=str.replace(/<tbody[^<>]*>/ig, "<tbody>");
str=str.replace(/<tfoot[^<>]*>/ig, "<tfoot>");
str=str.replace(/<tr[^<>]*>/ig, "<tr>");
str=str.replace(/<th [^<>]*>/ig, "<th>");
str=str.replace(/<td[^<>]*>/ig, "<td>");
str=str.replace(/<th>\s*?<p>/ig, "<th>");
str=str.replace(/<\/p>\s*?<\/th>/ig, "</th>");
str=str.replace(/<td[^<>]*>\s*?<p>/ig, "<td>");
str=str.replace(/<td>\s*?<p>/ig, "<td>");
str=str.replace(/<\/p>\s*?<\/td>/ig, "</td>");

这样对于表格中所有出现的标签都进行了替换,因为现在都是用css控制的,基本上不用这么多参数什么的了,除非特殊的表格

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

Javascript 相关文章推荐
jQuery setTimeout()函数使用方法
Apr 07 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
JS delegate与live浅析
Dec 21 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
jQuery实现的支持IE的html滑动条
Mar 16 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
jQuery实现磁力图片跟随效果完整示例
Sep 16 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
javascript实现日历效果
Jun 17 Javascript
jquery实现图片上传之前预览的方法
Jul 11 #Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 #Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 #Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 #Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 #Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 #Javascript
JavaScript模板引擎用法实例
Jul 10 #Javascript
You might like
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
jQuery最佳实践完整篇
2011/08/20 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
python 循环while和for in简单实例
2016/08/16 Python
Python 数据结构之队列的实现
2017/01/22 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
总监职责范文
2013/11/09 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
物资采购管理制度
2015/08/06 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js