【问题标题】:Freemarker - Split String based on New LineFreemarker - 基于换行符分割字符串
【发布时间】:2021-09-23 16:15:25
【问题描述】:

我想根据行拆分字符串,这意味着在单独的行上分隔内容。

Example -

Hello I
am
Bill Gates

Final Array should be ["Hello I","am","Bill Gates"] 

我尝试使用 split 函数并传递 '\n' 但它不起作用。

<#assign finalValue = body?split('\n') />

在这种情况下,我没有得到想要的结果。你能帮我解决这个问题吗?

更多详情,请阅读下文 -

我正在尝试从地址中获取国家/地区。国家总是在地址的最后一行,所以我试图根据行拆分地址,从而获取最后一行是所需的输出。

Example -
ABC, Industries Ltd.,
XYZ Street,
United States.

所以在这里,我使用 split 函数作为地址?split("\n") 但它不起作用。

所以,我尝试使用 Developers Console 进行拆分,它在那里运行良好。使用了 split() 函数。

不过,在获取地址值时,我将其作为 -

ABC, Industries Ltd., \n XYZ Street, \nUnited States.

因此,考虑使用 \n 进行拆分,但它不起作用!

【问题讨论】:

  • 你试过“\r”(回车)、“\r\n”(回车和换行)、“
    ”(HTML换行元素)、“char(10 )”(SQL 换行)或“char(13)”(SQL 回车)而不是“\n”(换行)。我不明确知道哪个在 NetSuite 中有效,但它们只是制作空格/换行符的不同选项
  • 当我尝试使用控制台获取我想要拆分的值时,这是我获取字符串的格式 - “Hello I \n am \nBill Gates”。所以基本上我有这个字符串,需要根据'\ n'来分割它。我尝试使用 '\r' 和 '\r\n' 但它们都不起作用。
  • 你能展示你正在使用的实际模板吗,你得到了什么结果?
  • @ddekany 我已在问题中添加了详细信息。请通过它。
  • @Jerry2109 您仍然没有显示生成该输出的模板,只是一个分配。另外我不确定为什么在输出中显示文字 \n-s 而不是实际的换行符。

标签: netsuite freemarker suitescript


【解决方案1】:

通常的问题是使用了 3 种换行符:\r\n(Windows 和一些 Web 协议)、\n(其他所有协议)和很少见的\r(旧 Mac)。适用于所有人的拆分是?split(r'\R', 'r')。请注意R\R 中的大写字母。这是一个正则表达式结构,自 Java 8 起就支持。

【讨论】:

  • 当我尝试使用控制台获取我想要拆分的值时,这是我获取字符串的格式 - “Hello I \n am \nBill Gates”。所以基本上我有这个字符串,需要根据'\ n'来分割它。我尝试使用 '\r' 和 '\r\n' 以及 [r'\R', 'r'] 但它们都不起作用。
猜你喜欢
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 2012-07-07
  • 2013-02-15
  • 2014-09-23
  • 1970-01-01
相关资源
最近更新 更多