2009-06-12 38 views
24

目前我把換行符字符串通過這兩種方法之一:如何在ColdFusion中的字符串中寫入換行符?

<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" /> 

回答

24

你的方法是正確的。 CF中不支持\ n或\ r。從Live Docs

  • CHR(10)返回一個換行字符
  • CHR(13)返回一個回車字符
  • 的兩個字符的字符串CHR(13)& CHR(10)返回的Windows換行符
+1

只需注意,Chr(13)&Chr(10)不能在簡單的中工作,您需要在JavaScript或其他內容中使用它以便得到t他換行顯示。我一直在發現這種有趣的方式。 – 2013-07-09 14:49:58

+1

它在我的cfoutput工作正常。當然,它不會在html中創建一箇中斷,因爲html將它視爲另一個空白,但如果您執行視圖源,則會看到中斷。也許你只需要一個
? – 2013-07-11 18:23:05

+0

可能。我只想報告說,如果人們遇到麻煩,就像我一樣,他們應該嘗試將它放入JavaScript或其他東西,看看是否修復它。 – 2013-07-12 01:56:41

4

不能直接在CF中,我將它留給CF-Java的帥哥說你是否可以使用Java方法直接對CF VAR達到你想要什麼,但是...

你可以使用cfsavecontent把自然換行符:

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

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

然後檢查

請注意,如果您不需要它們,則Trim()可以去掉第一個和最後一個換行符。

9

我用這個:

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

馬克,讓我們做沒有引號和#'s- 2009-06-12 17:56:48

14

如果你到獨立於平臺的發展,你可以這樣做:

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

例如,在你的application.cfm/cfc或其他地方高級別和使用。

1

我在想,如果像這樣的工作:

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

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

唉號:O(

0

CF8與行格式化CFMAIL飼料,不添加任何東西 看起來像Adobe將提供一些具體談談「爲什麼」和一個簡單的解決方法。 ...法學詞典

相關問題