如果仅在未跟随此字符的情况下如何删除此字符' u&#39 ;?

时间:2014-02-17 18:23:43

标签: javascript regex replace

我在一些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"}

我没有一个例子,当出现不需要的反斜杠时,但它与单引号,多维数组等有关。

1 个答案:

答案 0 :(得分:0)

您想要使用否定前瞻。来自regular-expressions.info

  

如果你不想匹配某些东西,那么否定的先行是必不可少的   其次是别的东西。

示例代码

formUpload.prototype.cleanResult = function(dirtResult){
    return dirtResult.replace(/\\(?!u)/g, '');
}

正则表达式

\\(?!u)

描述

Regular expression visualization

演示

http://regex101.com/r/qR2hA0