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

时间:2009-06-12 15:09:44

标签: syntax coldfusion newline

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

<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />

OR

<cfset NL=Chr(10) />
<cfset someStr="This is line 1#NL#This is line 2#NL#This is line 3" />

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

<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />

7 个答案:

答案 0 :(得分:27)

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

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

答案 1 :(得分:16)

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

<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>

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

答案 2 :(得分:11)

我用这个:

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

答案 3 :(得分:4)

不是直接在CF中,我会留给CF-Java老兄说你是否可以直接在CF var上使用Java方法来实现你想要的,但是......

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

<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>

然后检查:

<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>

请注意,如果您不想要它们,Trim()可以摆脱第一个和最后一个换行符。

答案 4 :(得分:0)

我想知道这样的事情是否有效:

<cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>

<cfoutput>
<pre>#str#</pre>
</cfoutput>

唉不:O(

答案 5 :(得分:0)

使用换行符CF8格式化cfmail并且不添加任何内容。 似乎Adobe会提供一些关于“为什么”和一个简单的解决方案的具体内容。 ... Jurisdictionary

答案 6 :(得分:0)

我一直在寻找一种在<cfscript>中输出新行的方法,所以我认为我会将答案留给其他以类似方式到达的人:

writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.

writeOutput作为html附加到页面输出流,因此您需要编写html才能输出(这意味着您还可以包括&nbsp;来添加缩进空间)< / em>。