前后台传换行符的问题

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

前台传到后台的数据有换行符,后台接收,如果不做处理直接返回到页面,用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","");

}else{

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

}

}

return desc;

}

前台:

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

if(desc.indexOf("
")){

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

}

if(desc.indexOf("")){

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

}








你可能感兴趣的:(js)