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的合并表格中相同文本的相邻单元格的代码
Apr 06 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
jquery.validate提示错误信息位置方法
Jan 22 Javascript
jQuery+正则+文本框只能输入数字的实现方法
Oct 07 Javascript
Vuex简单入门
Apr 19 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
微信小程序实现多图上传
Jun 19 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 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
PHP实现用户认证及管理完全源码
2007/03/11 PHP
php 类自动载入的方法
2015/06/03 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
限制文本字节数js代码
2007/03/06 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
js实现简单进度条效果
2020/03/25 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
wxPython窗口中文乱码解决方法
2014/10/11 Python
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
派出所所长先进事迹
2014/05/19 职场文书
运动会开幕式主持词
2015/07/01 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书