处理这种文本输出格式的,使用富文本编辑器是比较方便的,但我这里写的不是使用富文本编辑器的处理方法!那么,从数据库取出text文本到前端展示格式一致的解决方案主要有两种(仅Web端,其他平台没有调试):
一:提交数据之前,将textarea的回车、空格先转换格式,再提交数据存入数据库,那样取出数据输出到web端也能保证格式一致。
//关键js代码
var text = $("textarea").text();
var des = text.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' '); //转换格式
//将des文本内容存入数据库
//取出渲染视图即可
二:当数据库存储的是原生的textarea文本,这时候,输出到前端前需要解析文本。
前提:textarea文本上传到后台时已经包含了换行回车符,如果你发现textarea上传时没有保存换行回车,可以尝试设置textarea标签属性wrap="hard"(html5支持)
$(function() {
init();
});
function init() {
var text = $("div.text").text(); //先取出未转换格式前端数据
var des = text.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' '); //转换格式
$("div.text").empty();
$("div.text").append(des);
}
ps:建议使用$("div.text").empty(); $("div.text").append(des); 替换为转换格式后的前端文本,不要直接使用$("div.text").text(des); 替换文本;因为text方法会指定内容为text,那么<br/>标签会被直接输出而不会浏览器解析为换行!