一般情況下,在拼接字符串爲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格式而保持原內容不發生改變。