后端获取的文本换行_前台带换行符的文本提交到后台,后台在前台显示换行

本文介绍了如何处理前后端交互时文本的换行问题。在前端提交时,将换行符替换为`%0D%0A`,并在后端显示时使用正则表达式转换回换行。同时,展示了JavaScript代码示例,包括动态显示内容和处理Struts2标签的回显。
摘要由CSDN通过智能技术生成

数据在保存的时候,替换换行符为

function submitFun(url){

//获取form表单序列化的字符串,对form表单序列化后的样式为:aa=1&bb=1&cc=1的格式,所以这里利用&来分组,并且获得参数名和参数值再替换换行符

var submitDataStr = $(".__saveForm").serialize();

var descriptionEntity = submitDataStr.split("&")[0];

var key = descriptionEntity.split("=")[0];

var value = descriptionEntity.split("=")[1];

if(!value && value==""){

$.easyui.messager.show({ icon: "info", msg: "请在输入框中写入内容!", position: "topCenter" ,timeout:5000});

return;

}

//替换所有的换行符为
保存到数据库(在UTF8中的换行符为%0D%0A,正则后面的g表示所有的匹配的字符串都要替换.使用replace 方法的时候需要用正则表达式,否则只能替换第一个换行

value = value.replace(/%0D%0A/g,"
");

submitDataStr+="&object.description="+value;

//替换原来的"object.description"的参数字符串

var index = submitDataStr.indexOf("&");

submitDataStr = submitDataStr.substring(index+1);

if($(".__saveForm").form('validate')){

$.ajax({

url:url,

data:submitDataStr,

type:"POST",

dataType:'json',

success:function(data){

//服务器成功返回信息,执行success()方法

$.easyui.loaded({ topMost: true });

var obj= data;

if (obj && obj.returnCode==1)

{

$.easyui.messager.show({ icon: "info", msg: "回复提交成功", position: "topCenter" ,timeout:5000});

//每次提交完问题之后不会刷新页面

var flag = false;//默认客户提交

var name = obj.data.userName;

if(obj.managerName){

//客服提交

flag = true;

name = obj.data.managerName;

};

var descriptionStr = obj.data.description;

var imageArr = obj.data.imagelist;

var startTime = obj.data.startTime;

startTime = startTime.replace("T"," ");//格式化日期

//直接插入图片和描述会更好一些,这里选择利用JQUEY追加元素

addDataTbodyToTable(name,descriptionStr,imageArr,startTime,flag);

return;

}

$.easyui.messager.show({ icon: "info", msg: "回复提交失败", position: "topCenter" ,timeout:5000});

},

});

}else{

$.easyui.loaded({ topMost: true });

$(".__saveForm input:eq(0)").focus();

}

}

代码1.(输入回复内容之后,动态的在前台显示刚才输入的内容)

/**

* 增加描述description,传递对象为一个字符串

* @param str 描述字符串

* @param 图片地址构成的数组

* @param 提交日期

*/

function addDataTbodyToTable(name,descriptionStr,imageArr,startTime,flag){

//在显示的时候把
改成换行符显示出来(注意:使用replace 方法的时候需要用正则表达式,否则只能替换第一个换行 )

var reg=new RegExp("
","g"); //创建正则RegExp对象

var newDescriptionStr=descriptionStr.replace(reg,"\n");

var $dom = $('#tbody');

var str = "

";

if(flag){

//是客服

str+="客服--->";

}else{

str+="用户--->";

}

str+= name+":
"+startTime+"
"+newDescriptionStr+"
";

if(imageArr && imageArr.length > 0){

for(var i = 0;i

//注意,这里必须加上单引号,否则不能显示图片

str+="
";

}

}

str+="

";

$dom.before(str);

clearData();

}

代码2.(后台数据在前台显示,使用的是struts2标签的回显)

paleturquoiselemonchiffon">

客服--->:

用户--->:

--%>

"/>

3.在步骤2的中,因为可能存在空格,所以在JS中去处理,代码如下:

$(function(){

//页面加载完成之后,替换
为换行

var reg=new RegExp("
","g"); //创建正则RegExp对象

var $replaceDom = $('.description');

/**

* 替换数据库的
为换行在JSP页面显示

*/

for(var i = 0;i

var replaceStr = $($('.description')[i]).text().replace(reg,"\r\n");

$($('.description')[i]).html(replaceStr);

}

/**

* 注意:如果要删除多个元素要倒着删除,否则会出现错误

*/

//for(var i = $replaceDom.length;i>=0;i--){

//$($('.description')[i]).remove();

//}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值