一、因为后端传过来的数据的字符串是单引号,所以我这边不能直接直接进行json转义
所以我就把单引号替换成",这样就可以直接把字符串转换成对象的格式,然后来取里面的数据
二、字符串中多个反斜杠,直接转义取数据时报错问题
所以我直接把反斜杠去掉
String.prototype.replace方法的替换变量只支持以下几种$$插入一个$
$& 插入匹配的子串
$`插入匹配的子串前面的未匹配部分
$'插入匹配的子串后面未匹配的部分
$n插入正则的第n个匹配的分组内容
\1这种形式是不支持的,因为\1在字符串中会被认识是charcode为1的空白字符
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠例如 str1="aa\bbb"str2="aa'bbb"
要想替换成 str1="aa\\bbb"str2="aa\'bbb"
必须这样替换:
str1 = str1.replaceAll("\\\\", "\\\\\\\\")
str2 = str2.replaceAll("'", "\\\\'")
原因如下:
String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的,
\\\\ ,java解析为\\交给正则表达式, 正则表达式再经过一次转换,把\\转换成为\
也就是java里面要用正则来表示一个\. 必须写成4个\
如果要表示\\,那就要写8个\
所以如果写成: str1 = str1.replaceAll("\\", "\\\\")
就会报正则表达式的错误。