如何在 NetSuite freemarker 模板中按 space 拆分字符串?

How to split string by space in NetSuite freemarker template?

我们想在 NetSuite FreeMarker Template 中通过 space 拆分字符串并尝试了如下代码:

<#list tranline.inventorydetail?split(" ") as paragraph>
    <#if paragraph_index == 0>
          <tr>
            <td colspan="1" >${showIndex}</td>
            <td colspan="4">${tranline.item}</td>
            <td align="left" colspan="6">${tranline.description}</td>
            <td align="right" colspan="2">${tranline.quantityordered}</td>
            <td align="right" colspan="2">${tranline.quantityremaining}</td>
            <td align="right" colspan="2">${tranline.quantity}</td>
            <td align="left" colspan="4">${paragraph?keep_before(",")}</td>
          </tr>
     <#else>
          <tr>
            <td colspan="1" ></td>
            <td colspan="4"></td>
            <td align="left" colspan="6"></td>
            <td align="right" colspan="2"></td>
            <td align="right" colspan="2"></td>
            <td align="right" colspan="2"></td>
            <td align="left" colspan="4">${paragraph?keep_before(",")}</td>
          </tr>
      </#if> 
</#list>

但是没有生效

以下方法也不会按space将字符串拆分为数组:

<#list tranline.inventorydetail?split("\s+") as paragraph>
<#list tranline.inventorydetail?split("\s+") as paragraph>
<#list tranline.inventorydetail?split("&nbsp;") as paragraph>

有谁知道如何通过 space 在 NetSuite FreeeMarker 模板中拆分字符串?

您可以在 white-space 处将字符串拆分为 somestring?word_list。连续的白色-space 字符将算作一个分隔符。请注意,它只将字符视为 white-space: space, \t, \n, \r \f (通常就足够了) .

您也可以使用 ?split(r'\s+', 'r'),它将所有类型的 UNICODE 白色-space 识别为分隔符,但是,它也有一个小故障,对于 0 长度的字符串它 returns [""] 而不是 [](因为那是 Java Pattern.split 的行为方式)。