一般情况下,在拼接字符串为json格式的过程中,如果字符串含有单引号,双引号等特殊字符时,在解析json的过程中就会报错。同样,在别的格式使用的时候也会报错。
通常做法是将其替换为非特殊字符,然后再将其还原。
如下:
var word = "I'm json!"
var replacedWord = word.replace(/'/g,''');
然后再使用时又替换回来:
var preWord = replacedWord.replace(/'/g," ' ");
※ 或者使用escape() 和 unescape()方法
这种方法固然可以,但是在实际操作中未免繁琐。。
经过摸索,只需替换一次,也可以直接使用含有单引号双引号等特殊字符的字符串。
代码如下:
//在特殊字符前加斜杠(转义)
function addSlashes (str) {
return str.replace(/[\\"']/g, '\\$&');
}
正则表达式说明:
/[\\"']/g 全局搜索含有 " ’的字符
\\$& $&表示搜索到字符的引用,如果是' 则表示' 前加\\
这样就可以直接使用含有单引号双引号等特殊字符的字符串拼接json格式而保持原内容不发生改变。