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

使用JavaScript String.Replace()实现双换行转HTML段落的正则表达式

解决方案

要实现将任意数量双换行分隔的文本块转换为HTML <p> 标签,同时忽略单换行、处理首尾空白,可按以下步骤用JavaScript实现:

核心思路

  1. 清理字符串首尾的空白(包括换行符),避免生成空段落标签
  2. 将段落内部的单个换行符替换为空格(满足"忽略单换行"的要求)
  3. 将所有连续的双换行(含多个连续换行)替换为段落标签的闭合+开头
  4. 给整个字符串首尾补上完整的<p>标签

代码实现

const inputText = `Lorem ipsum dolor sit amet.\n\nConsectetur adipiscing elit.\n\nNunc eros enim.`;

const htmlOutput = inputText
  // 移除首尾的空白/换行
  .trim()
  // 将单个换行替换为空格(忽略单换行)
  .replace(/\n(?!\n)/g, ' ')
  // 将连续双换行(含多换行)替换为段落标签切换
  .replace(/\n\n+/g, '</p><p>')
  // 给开头添加<p>
  .replace(/^/, '<p>')
  // 给结尾添加</p>
  .replace(/$/, '</p>');

console.log(htmlOutput);

代码解释

  • .trim():清除字符串首尾的换行、空格等空白字符,避免生成<p></p>这类空标签
  • /\n(?!\n)/g:正则负向预查,匹配不跟随另一个换行符的单个换行,替换为空格
  • /\n\n+/g:匹配连续2个及以上的换行符,替换为</p><p>,实现段落分隔
  • 最后两次replace给处理后的字符串首尾补上完整的<p>标签,确保结构合法

边界情况适配

  • 单个段落(无任何双换行):直接生成单个<p>包裹的内容
  • 多个连续双换行:比如text\n\n\nanother,会被识别为两个段落,不会生成空段落
  • 段落内部含多个单换行:比如line1\nline2\nline3,会被合并为line1 line2 line3放入同一个<p>标签

内容的提问来源于stack exchange,提问作者Petr Kratochvíla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:20:37