如何调整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
逻辑说明
- 核心正则
/(\s+)(<\/(strong|em)>)/g:(\s+)捕获闭合标签前的一个或多个空格<\/(strong|em)>匹配</strong>或</em>标签- 替换为
$2,将标签前置,空格移到标签后并统一为单个(符合示例需求)
- 若需要保留原有的空格数量(比如多个空格仍保留),可将替换规则改为
'$2$1',同时删除合并多空格的步骤。
内容的提问来源于stack exchange,提问作者dv90
相关产品推荐
相关产品推荐

