word表格转html后去除冗余代码

word可以另存为html文件,通过这个功能,可以快速实现网页展示word内容,特别是表格的编辑,它包含tr、td、th、rowspan、colspan等内容,直接写比较繁琐。

但word转换过来的html默认是带有很多格式代码,那么如何去除这些冗余代码,只保留主内容呢?

本来是打算从网上找工具的,但发现没有现成的,一般都是推荐用工具的文本替换来去除,这样不能复用。因此,本人采用nodejs写了一小段代码,来去除冗余代码。

主要思路是:

  1. nodejs读取html文件的文本内容
  2. 用substring函数获取table内容
  3. 用正则去除多余标签
  4. 用正则去除多余属性
  5. 用正则去除多余空格
var fs = require(‘fs‘)

// 异步读取
fs.readFile(‘static/detail/county-hhz.html‘, function (err, data) {
    if (err) {
        return console.error(err);
    }

    // 步骤1:获取table内容
    var content = data.toString();
    content = content.substring(content.indexOf("<table"), content.indexOf("</table>") + 8);

    // 步骤2:去除多余的标签
    [‘span‘, ‘p‘, ‘o‘, ‘font‘].forEach(item => {
        content = content.replace(new RegExp(`<${item}(.*?)>(.*?)<\/${item}.*?>`, ‘gi‘), function(match, p1, p2) {
            return p2;
        });
    })

    // 步骤3:去除多余的属性元素
    content = content.replace(/style=".*?"/g, ""); // 去除style属性
    content = content.replace(/(class|border|cellspacing|MsoNormalTable|valign|width|center|&nbsp;)(=\S*)?/g, "");

    // 步骤4:去除多余空格
    content = content.replace(/(\S+)(\s+)/g, function(match, p1, p2) {
        return p1 + ‘ ‘;
    })
    content = content.replace(/(\s)(>|<)/g, function(match, p1, p2) {
        return p2;
    })

    console.log(content);
 });

原文地址:https://www.cnblogs.com/zhang90030/p/9591420.html

时间: 2024-11-05 21:35:16

word表格转html后去除冗余代码的相关文章

一个利用正则表达式进行代码重构,去除冗余代码的例子

refact之前:大量的重复代码 refact之后:用map消除了重复代码. 现在的分支里每次执行检查都要先 var usRegx = /XXXX/. 实际上通过字面量定义了一个正则表达式对象,开销比定义一个String大.其实没必要每次都定义,可以把map定义在controller的一个全局属性上. 执行这段代码就可看出字符串常量和正则表达式字面量的性能差异: var N = 100000000; console.time("normal string"); for( var i =

批量去除Teleport Pro整站下载文件冗余代码

teleport pro tppabs标签批量删除 teleport pro tppabs标签批量删除 使 用Teleport Pro下载的网页代码中包含了很多垃圾代码,比如下载的html网页代码中会出现tppabs标签,而且还会将所有的href标签中加入了很多垃圾代码, 在css会加入了tpa标签,这些都是冗余代码,可以将其全部删除,但是由于代码太多,我们不可能一个个删除,因此可以使用Dreamweaver的查找 /替换工具中的正则表达式来进行替换.1.替换tppabs标签,使用Dreamwe

DW快速去除tppabs冗余代码

对于刚刚开始学习网站建设的朋友来说,网页的设计与布局也是一个困难的过程.那么大家可能都有这样的想法:我看到一个不错的网站,我可不可以用它的网页呢?答案当然是可以的.但是这种方法仅供学习,切勿用于商业用途(侵犯原作者的劳动成果,你懂的).这里涉及到两个软件,一个是teleport pro.而另一个当然就是DW(全称:dreamweaver)了.关于teleport pro,这是一个非常好用的整站下载软件,我一直都在用这个!使用过的朋友都知道下载完后所有的超链都被强行加了一句tppabs="...&

如何使用免费控件将Word表格中的数据导入到Excel中

我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要将word表格中的数据导入到Excel中.相信大家也碰到过同样的问题,下面我就给大家分享一下在C#中如何使用免费控件来实现这一功能.这里,我使用了两个免费API, DocX和Spire.Xls. 有需要的朋友可以下载使用.下载地址: DocX:codeplex官网 Spire.Xls: E-iceb

怎么批量修改Word表格的宽度

怎么批量修改Word表格的宽度 怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样.当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者文档中有许多大大小小的表格,希望宽度全部调整与页宽一样.下面的方法就非常有用啦. 第一步.打开Word文档,按下[Alt + F11] 第二步.在VBA编辑器窗口的左上方,双击[ThisDocument] 第三步.在右侧选择[Document],再在其右侧下拉选择[Open] 第四步.然后在宏代码编

(一)建筑物多边形化简系列之去除冗余点

制图综合和建筑物数据处理等都涉及到建筑物多边形的化简.制图综合中,由于比例尺的变小,建筑物在小比例尺地图上所占面积变小,这意味着建筑物图形的形状精度也有一定的损失,为了更好地表示原有建筑物的特征(面积.图形和方向),需要对建筑物多边形进行化简.另外,从遥感影像提取的建筑物矢量数据需要经过图形化简等一系列操作才能作为可使用的数据. 由于本人最近在进行建筑物数据处理的项目,遇到了较多的问题,同时也收获了很多知识.所有打算写一个建筑物处理的系列博客. 首先明确,矢量数据结构中,建筑物多边形是由一些列环

通过Aspose.Word和ZXING生成复杂的WORD表格

1.前言 这是我之前做的一个项目中要求的功能模块,它的需求是生成一个WORD文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是我需要解决的重点: 1.如何生成WORD并插入表格和文字: 2.如何合并表格的单元格: 3.如何生成二维码和条形码并且插入到表格中: 4.如何对WORD分页: 可以说只要解决了这几点这个功能就解决了,一开始我是想用Microsoft.Office.Interop.Word来生成WORD的但是感觉比较

Java 操作Word表格

本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表格,包括添加数据.插入表格.合并单元格.设置表格样式.单元格居中.单元格背景色,单元格字体样式等设置,可参考这篇文章里的内容. 使用工具:Free Spire.Doc for Java (免费版) Jar文件可通过官网下载jar文件包,下载后,解压文件,将lib文件夹下的Spire.Doc.jar导

poi导出word表格跨行

DataCommon.java package com.ksource.pwlp.model.statistic; public class DataCommon { private Long id; private String name; private String otherName; private String dataName; private String otherDataName; private int value; private float otherValue; pr