You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Quill.js生成HTML中strong/em标签空格位置适配Markdown转换?

解决方案

你可以通过正则表达式全局处理strong和em标签,将闭合标签前的空格移到标签之后,具体实现如下:

代码实现

const fixTagSpaces = (html) => {
  // 匹配strong/em闭合标签前的所有空格,移到标签后方
  let processedHtml = html.replace(/(\s+)(<\/(strong|em)>)/g, '$2 ');
  // 合并连续多空格为单个(和示例结果对齐,不需要可删除此步)
  processedHtml = processedHtml.replace(/\s+/g, ' ');
  return processedHtml;
};

// 测试示例
const originalHtml = '<p><strong>some </strong><em>text</em> <strong>is      </strong><em>here</em></p>';
const expectedHtml = '<p><strong>some</strong> <em>text</em> <strong>is</strong> <em>here</em></p>';

console.log(fixTagSpaces(originalHtml) === expectedHtml); // 输出 true

逻辑说明

  1. 核心正则/(\s+)(<\/(strong|em)>)/g:
    • (\s+) 捕获闭合标签前的一个或多个空格
    • <\/(strong|em)> 匹配</strong>或</em>标签
    • 替换为$2 ,将标签前置,空格移到标签后并统一为单个(符合示例需求)
  2. 若需要保留原有的空格数量(比如多个空格仍保留),可将替换规则改为'$2$1',同时删除合并多空格的步骤。

内容的提问来源于stack exchange,提问作者dv90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:23:25