前后台传换行符的问题

本文探讨了前后台数据交互中换行符导致的问题及解决方案。主要介绍了两种处理方式:一是在数据保存前替换换行符;二是保存原始换行符,在返回前台时进行特殊处理。并给出了具体的后台Java和前台JavaScript代码示例。

今天遇到一个看似很简单,又有点棘手的问题。

前台传到后台的数据有换行符,后台接收,如果不做处理直接返回到页面,用jsp接收${desc}是没有问题的。但是,如果在js中引用,控制台就会报出unterminated string literal的错误。遇到这种情况有两种方式可以处理:

1)保存数据前先处理,用其他字符串代替\n或者\r\n,后台保存后,如果前台有需要再返回时,可以再替换成\n或者\r\n(没做验证,应该没问题)。不推荐,略繁琐,容易有陷阱。

2)按原有格式保存到数据库中,当前台用到时,可在返回前台之前做一个特殊处理,在前台页面再转换成换行符,已验证,可行。

需要注意的是,在火狐浏览器下,换行符为\r\n,在谷歌浏览器下,换行符为\n

后台:

public String filterLineBreak(String desc){

if(desc!=null&&desc.indexOf("\n")!=-1){

if(desc.indexOf("\r\n")!=-1){

desc = desc.replace("\r\n","<brbr/>");

}else{

desc = desc.replace("\n","<br/>");

}

}

return desc;

}

前台:

var desc = '{desc}'.trim();

if(desc.indexOf("<br/>")){

desc = desc.replace(/<br\/>/g,"\n");

}

if(desc.indexOf("<brbr/>")){

desc = desc.replace(/<brbr\/>/g,"\r\n");

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值