我在一些JavaScript类中有这个小方法,它通过php与服务器通信,使用JSON:
formUpload.prototype.cleanResult = function(dirtResult){
var res = dirtResult.slice(dirtResult.indexOf("{"), dirtResult.lastIndexOf("}")+1);
res = res.replace(/\\/g, "");
return res;
}
首先,我只获得JSON(有时文本结果中有警告)。比我unescape(删除反斜杠),因为有时JSON是复杂的,并且一些反斜杠在JavaScript中解析时会产生错误。我试图摆脱那些反斜杠,但我不确定它是否可能。同时,正则表达式在收到回复时删除。
问题是当有特殊字符时,它以utf-8(\ uXXXX)编码,如果删除此反斜杠,则不会识别该字符,结果将是文本中的uXXXX。
所以我需要一个正则表达式,在没有“u”之后删除反斜杠,这是迄今为止我所不知道的直觉......
另外,一个好的教程会很酷!
编辑:这是一个简单的回复:
{"erro":"dir","msg":"N\u00e3o existe o diret\u00f3rio e n\u00e3o foi poss\u00edvel cri\u00e1-lo.","descr":"dir:/Library/WebServer/Documents/www/sintran/fotos"}
我没有一个例子,当出现不需要的反斜杠时,但它与单引号,多维数组等有关。
答案 0 :(得分:0)
您想要使用否定前瞻。来自regular-expressions.info
如果你不想匹配某些东西,那么否定的先行是必不可少的 其次是别的东西。
formUpload.prototype.cleanResult = function(dirtResult){
return dirtResult.replace(/\\(?!u)/g, '');
}
\\(?!u)