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 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 Javascript
js中的触发事件对象event.srcElement与event.target详解
Mar 15 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
vue移动端的左右滑动事件详解
Jun 17 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 Javascript
用JS创建一个录屏功能
Nov 11 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 中检查或过滤IP地址的实现代码
2011/11/27 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP里的单例类写法实例
2015/06/25 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
Python中Threading用法详解
2017/12/27 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
财务管理专业应届毕业生求职信
2013/09/22 职场文书
师范应届生教师求职信
2013/11/05 职场文书
会员卡清退活动总结
2014/08/27 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
django中websocket的具体使用
2022/01/22 Python