需求:在textarea中输入文字,提交给后台后,后台输出在另一个页面,文字按原格式显示。
问题:如何还原输入框中的换行和空格?
兼容性:IE9以上、FF、chrome在换行处匹配/
/
IE7-8在换行处先匹配/
/,再匹配/
/
html:
<textarea name="" id="test_new_line" cols="30" rows="10"></textarea>
<input type="button" id="submit" value="提交"/>
<div id="result"></div>
js:
document.getElementById("submit").onclick = function(){
var newString = document.getElementById("test_new_line").value.replace(/
/g, '_@').replace(/
/g, '_#');
document.getElementById("result").innerHTML = newString;
};
输入:
![关于textarea中换行、回车、空格的识别与处理 - helloiamkitty - 单骑邮差](http://img2.ph.126.net/6FIIYqeRe8saScGfugAXmg==/6597487581075338792.jpg)
亲爱的:_#_@ 新年好!_#_@_#_@ 2013年春节 // IE7-8
亲爱的:_@ 新年好!_@_@ 2013年春节 //IE9、FF、chrome
兼容性解决方案:
document.getElementById("submit").onclick = function(){
var newString = document.getElementById("test_new_line").value.replace(/
/g, '_@').replace(/
/g, '_#');
newString = newString.replace(/_#_@/g, '<br/>');//IE7-8
newString = newString.replace(/_@/g, '<br/>');//IE9、FF、chrome
newString = newString.replace(/s/g, ' ');//空格处理
document.getElementById("result").innerHTML = newString;
};
最终结果:
chrome:
![关于textarea中换行、回车、空格的识别与处理 - helloiamkitty - 单骑邮差](http://img2.ph.126.net/Y_vpOhvJixLGlUPN6nt4fA==/6597136836867647692.jpg)
![关于textarea中换行、回车、空格的识别与处理 - helloiamkitty - 单骑邮差](http://img5.ph.126.net/-asDlipcW7o6zWXdbK67aA==/6598059327121816535.jpg)
![关于textarea中换行、回车、空格的识别与处理 - helloiamkitty - 单骑邮差](http://img6.ph.126.net/cuhQDw8ch8zrocuI7Wq5Vw==/6597715179982532306.jpg)
方案缺陷:
1、提交的文字中不能包含:"_@"、"_#"这两个字符。
2、IE、FF对空格的显示不理想(不能100%还原格式)。
文章原地址:http://helloiamkitty.blog.163.com/blog/static/189677101201311330792/