代码之家  ›  专栏  ›  技术社区  ›  skyline

如何在NetSuite freemarker模板中按空格分割字符串?

  •  0
  • skyline  · 技术社区  · 7 年前

    <#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>
    

    但它没有起作用。

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

    1 回复  |  直到 7 年前
        1
  •  5
  •   ddekany    7 年前

    您可以使用在空白处拆分字符串 somestring?word_list . 连续的空白字符将计为单个分隔符。请注意,它仅将这些字符视为空白:空格, \t \n \r \f (这通常就足够了)。

    ?split(r'\s+', 'r') ,它将所有类型的UNICODE空格识别为分隔符,但是,它也有一个小问题,即对于长度为0的字符串返回 [""] 而不是 [] Pattern.split