反斜杠正则表达式遇到一些麻烦。我想删除对象的任何字符串属性上存在的所有双反斜杠(或 2 的任何倍数)。我不想删除单个反斜杠,也不想删除奇数个反斜杠中的最后一个反斜杠(例如,在一组五个连续的反斜杠 \\\\\ -> \ 中留下一个反斜杠)。
代码在这里:
//removes all dual backslahes on all string properties on an object
var removeDualBackslash = function (obj) {
var ret = null;
if (typeof(obj) == "string") {
obj = obj.replace(/\\\\/g,"");
return obj;
} else if (typeof(obj) == "number") {
return obj;
} else if (typeof(obj) == "array") {
ret = [];
} else {
ret = {};
}
for (var key in obj)
ret[key] = removeDualBackslash(obj[key]);
return ret;
};
var oJSON = {"t4m_data_in":{"no_data":"No data \\passed in."}};
oJSON = removeDualBackslash(oJSON);
console.log(oJSON.t4m_data_in.no_data);
从 console.log 可以看出,其中一个反斜杠仍然存在。有谁知道我需要什么正则表达式来删除它们?