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

如何将Vue传至Laravel后端的文本空白替换为\n\n?

解决Vue到Laravel后端文本段落空白替换为\n\n的问题

先排查空白的实际格式

首先要明确前端传过来的“段落间空白”具体是什么类型:

  • 是多个连续换行(比如\n\n\n或Windows系统的\r\n\r\n)
  • 是HTML格式的段落标签(比如<p>、<br><br>)
  • 还是大量连续空格

可以在Laravel后端先打印原始内容确认:

// 日志打印原始文本
Log::info('Received raw text: ' . $request->input('content'));
// 直接输出转义后的内容,方便查看换行/标签结构
dd($request->input('content'));

针对不同情况的替换方案

情况1:空白是多个连续换行

用正则替换把任意数量的连续换行(兼容\n和\r\n)统一替换为\n\n:

$originalText = $request->input('content');
$processedText = preg_replace('/(\r?\n)+/', "\n\n", $originalText);

情况2:空白是HTML段落标签

如果前端传的是富文本HTML,先处理标签再转成目标格式:

$htmlText = $request->input('content');
// 保留换行相关标签,去掉其他HTML标签
$plainText = strip_tags($htmlText, '<br><p>');
// 替换HTML标签为换行
$textWithBreaks = str_replace(['<p>', '</p>', '<br><br>'], ["\n\n", '', "\n\n"], $plainText);
// 清理多余的连续换行
$processedText = preg_replace('/(\r?\n)+/', "\n\n", $textWithBreaks);

情况3:空白是大量连续空格

先合并连续空格,再替换段落间的空格为换行:

$originalText = $request->input('content');
// 合并所有连续空格为单个空格
$cleanedSpaces = preg_replace('/\s+/', ' ', $originalText);
// 替换段落间的换行+空格+换行为\n\n
$processedText = preg_replace('/(\r?\n)\s+(\r?\n)/', "\n\n", $cleanedSpaces);

验证替换结果

处理完成后可以直接输出确认格式:

// 查看转义后的内容,确认\n\n是否正确生成
dd(addslashes($processedText));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:10:36