根據問題,查找了很多文章,最後做了一下總結。
關鍵知識點:正則表達式;js的replace函數
方法一
js創建了兩個函數:一個用來存儲數據時格式的轉換,一個用來顯示數據時格式的解析。
1.當存入數據庫時調用
function getFormatCode(strValue){
return strValue.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
}
2.當顯示數據時調用
function decryptCode(strValue){
return strValue.replace(/<br\s*\/?>/ig,'\r\n').replace(/<br\s*\/?>/ig,'\n').replace(/\ \;/g,' ');
}
這兩種函數的調用,能夠完美的解決textare輸入空格和換行時的問題。
方法二
平時解決問題時候,都說能用css樣式或者html標籤解決的問題,絕對不用js去解決,通過網上總結和測試,又找到了一種很好的解決方案:
<pre><textarea></textarea></pre>
並且給pre標籤添加瀏覽器的兼容性:
pre {
white-space: pre-wrap; !* css-3 *!
white-space: -moz-pre-wrap; !* Mozilla, since 1999 *!
white-space: -pre-wrap; !*Opera 4-6 *!
white-space: -o-pre-wrap; !* Opera 7 *!
word-wrap: break-word; !* Internet Explorer 5.5+ *!
word-break:break-all;
overflow:hidden;
}