如何在ColdFusion中的字符串中写入换行符?

Kip*_*Kip 29 syntax coldfusion newline

目前我通过以下两种方法之一将字符串换成新行:

<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />
Run Code Online (Sandbox Code Playgroud)

要么

<cfset NL=Chr(10) />
<cfset someStr="This is line 1#NL#This is line 2#NL#This is line 3" />
Run Code Online (Sandbox Code Playgroud)

还有更像Java/C++的方式吗?更像是这样我的意思是:

<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />
Run Code Online (Sandbox Code Playgroud)

Nic*_*unt 29

你的方式是正确的.CF中不支持\n或\ r \n.来自Live Docs

  • Chr(10)返回换行符
  • Chr(13)返回一个回车符
  • 双字符串Chr(13)&Chr(10)返回Windows换行符

  • 它对我来说在cfoutput中运行良好.当然它不会在html中创建一个中断,因为html将它视为另一个空格,但如果你做一个视图源,你会看到中断.也许你只需要一个<br>? (2认同)

Tom*_*lak 19

如果您进入与平台无关的开发,您可以:

<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>
Run Code Online (Sandbox Code Playgroud)

例如,在您application.cfm/cfc或其他高级别的地方并使用它.

  • 我专门使用它,它很容易说“我们将永远只能在Windows上运行”,但是当您不得不更改由于懒惰而散布的数百行代码时,这将是一个悲伤的日子。 (2认同)

mar*_*her 11

我用这个:

<cfset br = "#chr(13)##chr(10)#">
<cfset someStr="This is line 1#br#This is line 2#br#This is line 3" />
Run Code Online (Sandbox Code Playgroud)

  • 你会从我寒冷的死手Nathan那里撕下引号和捣蛋! (11认同)
  • Marc,让我们没有引号和#'s- <cfset br = chr(13)&chr(10)/> (9认同)

Adr*_*nch 5

不是直接在CF中,我将它留给CF-Java来说明您是否可以直接在CF var上使用Java方法来实现所需的功能,但是...

您可以使用cfsavecontent将自然换行符放入:

<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令进行检查:

<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

请注意,如果您不希望使用Trim(),则可以摆脱第一个和最后一个换行符。