需求:在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;
};
输入:
输出:
亲爱的:_#_@ 新年好!_#_@_#_@ 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:
方案缺陷:
1、提交的文字中不能包含:"_@"、"_#"这两个字符。
2、IE、FF对空格的显示不理想(不能100%还原格式)。
文章原地址:http://helloiamkitty.blog.163.com/blog/static/189677101201311330792/