在textarea中輸入的文本。如果含有回車或空格。在界面上顯示的時(shí)候則不哪么正常。回車消失了,空格變短了。
如何解決這個(gè)問題呢。有2種方法。
1.使用<pre>標(biāo)簽
w3c對pre元素是這樣定義的:pre 元素可定義預(yù)格式化的文本。被包圍在 pre 元素中的文本通常會(huì)保留空格和換行符。而文本也會(huì)呈現(xiàn)為等寬字體。
更詳細(xì)的內(nèi)容請參考
http://www.w3school.com.cn/tags/tag_pre.asp
也就是說包含在pre標(biāo)簽中的回車和空格會(huì)正常的顯示出來。包括你在頁面代碼中輸入的。所以如果使用pre元素你需要這樣寫:
<pre>要輸出的文本</pre>
,而不是這樣:
<pre>
要輸出的文本
</pre>
后一種寫法 文本前的空白也會(huì)被顯示的。除非你真的希望這樣:)
2.對文本內(nèi)容進(jìn)行替換。
回車和空格不能正確顯示,究其原因是他們各自的表示方式不同。在textarea里面輸入的回車是字符"\r",html中的回車(換行)是"<br/>"。
textarea中輸入的空格是空白" ",而html中的一個(gè)空格是" "。理所當(dāng)然不能正確顯示。好了現(xiàn)在知道了原因就有了第二種解決方案了。
只要我們將輸入的文本中相應(yīng)的"元素"替換成html認(rèn)識(shí)的就ok了。因此下面一行代碼即可解決問題:
"要輸出的文本".replaceAll(" "," ").replaceAll("\r","<br/>");
等等。這里還有一點(diǎn)小問題。把一個(gè)空格替換成一個(gè)" "空格看上去仍然要少些。如果你喜歡可以替換成2個(gè)。
最后,除了回車和空格以外還有很多空白字符如tab等,如果你喜歡可以一并處理了^_^
最后的最后,如果本來的文本是很長的一行,使用pre標(biāo)簽后就不會(huì)自動(dòng)換行。結(jié)果頁面出現(xiàn)橫向滾動(dòng)條。不知道有沒有好的解決方法?
而將第二種方法處理過的文本放在<p>標(biāo)簽中顯示,就可以顯示正常。