前言
最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串
导致报错的原因
后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套
1)
2)
3) 双引号
4)单引号
5)双引号包含双引号
6)单引号包含单引号
解决办法
1)
前端:替换成\n
2)
前端:替换成\r
3) 双引号
前端:替换成"
4)单引号
前端:替换成'
5)双引号包含双引号
前端:双引号包含单引号
6)单引号包含单引号
前端:单引号包含双引号
当然我们需要后端同时配合处理
可能存在问题
\n失效,在页面并没有换行
解决办法:
方法一:我们可以在渲染页面前找到 将其替换成<br/>
this.termUse=data.replace(/ /g,'<br/>'); this.renderFloorContent(this.termUse);
补充:因为不同编辑输出的回车换行不太一样,如果你发现替换 无效果,可以试着换成 或者 再看结果,总有一种可以替换成功
方法二:我们可以在渲染页面前需要循环字符换,将等于 的字符串替换成“<br/>”,重组字符串
var i; var result = ""; var c; for (i = 0; i < str.length; i++) { c = str.substr(i, 1); if ( c == " ") result = result + "</br>"; else if (c != " ") result = result + c;
}
方法二能用,但太麻烦不推荐