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

如何在Mustache中跳过空字符串?无需修改后端输入

问题描述

我想要实现如下文本效果:

  • 当Romeo包含内容时:
    • Alpha
    • Romeo
    • //空行
    • //空行
    • Julia
  • 当Romeo为Null或空字符串时:
    • Alpha
    • Julia

我的.mustache模板如下:

{{alpha}}
 {{#romeo}}{{romeo}}\n\n{{/romeo}}
 {{julia}}

当前模板在Romeo为Null时有效,但在Romeo为空字符串时无效。能否在不修改如下所示的后端输入逻辑的前提下解决该问题?

if(romeo.isEmpty()){
  romeo=null;
解决方案

可以通过调整Mustache模板的嵌套区块逻辑来解决,不需要修改后端代码。

Mustache会把空字符串判定为真值,因此空字符串时{{#romeo}}区块仍会执行,这就是当前模板失效的原因。我们需要添加一层嵌套判断,确保只有当Romeo是非空字符串时才输出内容和空行。

修改后的模板:

{{alpha}}
{{#romeo}}{{#romeo}}{{romeo}}

{{/romeo}}{{/romeo}}
{{julia}}

逻辑解释:

  1. 外层{{#romeo}}:仅当Romeo不为null时触发(包含空字符串的情况);
  2. 内层{{#romeo}}:仅当Romeo是有实际内容的非空字符串时触发(空字符串会被Mustache判定为假值,跳过此区块);
  3. 当Romeo有内容时,内层区块输出{{romeo}}和两个换行,对应需求中的两个空行;
  4. 当Romeo是空字符串或null时,最终只会输出Alpha和Julia,符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:10:38