目前我通过以下两种方法之一将字符串换成新行:
<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" />
答案 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才能输出(这意味着您还可以包括
来添加缩进空间)< / em>。