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

如何用JS正则实现换行转<p>标签、双换行转含<br>的<p>标签

解决方案

你可以分两步处理文本,先给每一行(包括空行)包裹<p>标签,再把空的<p></p>替换成<p><br /></p>,就能满足需求:

function textToHtml(text) {
  // 给每一行(含空行)包裹<p>标签,m开启多行模式让^/$匹配每行首尾
  text = text.replace(/^.*$/gm, '<p>$&</p>');
  // 将空内容的<p>标签替换为带换行的目标标签
  text = text.replace(/<p><\/p>/g, '<p><br /></p>');
  return text;
}

测试验证

调用textToHtml('Hello World\n\nFoo Bar\nBas Baz')会返回:

<p>Hello World</p>
<p><br /></p>
<p>Foo Bar</p>
<p>Bas Baz</p>

思路说明

  1. 正则/^.*$/gm的m是多行模式,让^和$能匹配每一行的首尾,.*匹配该行所有内容(包括空行),$&指代匹配到的整行内容,实现每行的<p>包裹。
  2. 原文本中的双换行\n\n会被第一步处理成空行对应的<p></p>,第二步将这个空标签替换成需求的<p><br /></p>即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:38:24