根据问题,查找了很多文章,最后做了一下总结。
关键知识点:正则表达式;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;
}