有没有办法清除html标签的所有属性?

我有个word,里面很多表格,我把word转成了网页,然后就拿到了table标签的代码,但是里面很多属性,很多样式,我只想要最基础的table标签代码。

阅读 2.4k
3 个回答
function removeAttributes(htmlString) {
  // 正则表达式匹配HTML标签和属性
  var pattern = /<[^>]+?(\s+[^>]*?)?>/gi;
  
  // 使用字符串替换将匹配到的标签和属性清除
  var cleanString = htmlString.replace(pattern, function (match) {
    return match.replace(/(\s+\w+(=["'][^"']*["'])?)/gi, '');
  });
  
  return cleanString;
}

// 示例用法
var htmlString = '<p class="my-class" style="color:red">This is a paragraph.</p>';
var cleanedString = removeAttributes(htmlString);
console.log(cleanedString); // <p>This is a paragraph.</p>
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

我理解表格合并什么的其实还是需要的,所以有可能全部去除也并不是你期望的。

这样的话,有几个想法

  1. style 全部干掉。
  2. 特殊标签替换为span,比如说 i、strong、font 等
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

几个方法:

  • 直接处理字符串,那么需要将不符合的内容进行替换
  • 获取到 dom 后 clone 一份,然后利用各种 DOM Api 进行修改,例如 domEle.attribs = {}
  • 转成 ast ,基于 ast 的修改方法去过滤后修改,在转成目标内容
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题