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

JavaScript中markdownParser无法转换含空格字符串为HTML标签的问题

解决Markdown标题转HTML的空格兼容问题

你的代码无法处理带空格的标题内容,核心原因是正则表达式仅匹配标题符号(#)与内容之间的单个空格,且替换顺序可以进一步优化以提升严谨性。

修改后的代码

function markdownParser(markdown) {
  const htmlText = markdown
    .replace(/^######\s+(.*$)/gim, '<h6>$1</h6>')
    .replace(/^#####\s+(.*$)/gim, '<h5>$1</h5>')
    .replace(/^####\s+(.*$)/gim, '<h4>$1</h4>')
    .replace(/^###\s+(.*$)/gim, '<h3>$1</h3>')
    .replace(/^##\s+(.*$)/gim, '<h2>$1</h2>')
    .replace(/^#\s+(.*$)/gim, '<h1>$1</h1>')
  return htmlText.trim() 
}

关键调整说明

  • 把正则中的单个空格 替换为\s+,可匹配标题符号后一个或多个空白字符(包括空格、制表符),兼容更多输入场景;
  • 调整替换顺序,从最多#的h6开始匹配,避免出现多#标题被少#正则误匹配的情况,逻辑更严谨。

测试传入#### Muhammad Kamran,会正确返回<h4>Muhammad Kamran</h4>;即使标题符号与内容间有多个空格,也能正常转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:35:21