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

JavaScript中split分割含 的多行字符串失效问题

问题原因

SFL案例对象的长文本字段经SOQL查询返回时,写入时的单换行符会被自动转换为连续的\r\n\r\n序列。直接调用split('\r\n')时,连续的两个换行分隔符会被识别为三个分段:首行文本、两个换行之间的空字符串、次行文本,后续如果用逗号拼接数组,空字符串就会显示为,,的异常占位。

解决方案

根据是否需要拆分逐行处理,可选择对应方案:

  • 直接输出场景:无需做split拆分,直接通过正则把所有连续的换行符序列替换为单个标准换行符即可
// 替换所有连续\r\n序列为单个换行,同时去除首尾多余空白
String finalContent = soqlQueryResult.replaceAll('(\r\n)+', '\n').trim();

执行后直接输出即可得到逐行显示的预期效果,不会出现多余空行。

  • 需要拆分逐行处理场景:先做换行符归一化,再拆分过滤空值
// 第一步:统一替换所有类型的连续换行符为单个\n,兼容不同系统的换行格式
String normalizedStr = soqlQueryResult.replaceAll('(\r\n|\r|\n)+', '\n');
// 第二步:拆分后过滤空行,同时去除每行首尾多余缩进
List<String> validLines = new List<String>();
for(String line : normalizedStr.split('\n')){
    String item = line.trim();
    if(String.isNotBlank(item)){
        validLines.add(item);
    }
}
// 若需要拼接回多行文本,用单个\n连接即可
String finalContent = String.join(validLines, '\n');

注意:不要直接对原始返回值使用split('\r\n'),连续换行符生成的空元素如果不过滤,无论后续拼接还是遍历处理都会出现异常占位。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:45:45