gpt4 book ai didi

用于删除双反斜杠的 Javascript 正则表达式

转载 作者:行者123 更新时间:2023-11-30 08:10:44 42 4
gpt4 key购买 nike

在使用反斜杠正则表达式时遇到一些问题。我想删除对象的任何字符串属性上存在的所有双反斜杠(或 2 的任意倍数)。我不想删除单个反斜杠,也不想删除奇数个反斜杠中的最后一个反斜杠(例如,在一组五个连续的反斜杠\\\\\->\中保留一个反斜杠)。

代码在这里:

http://jsfiddle.net/59Zau/

//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 中看到的那样,其中一个反斜杠仍然存在。有谁知道我需要什么正则表达式来删除它们?

最佳答案

问题出在您的 JSON 字符串中。 "\\" 已经有一个反斜杠。

>> console.log("No data \\passed in");
No data \passed in

您确定不想删除所有反斜杠吗?

obj = obj.replace(/\\/g,"");

这样做会删除像 "\\" 这样的文字反斜杠,但仍然会保留像 "\n" 这样的其他转义序列,因为在那些情况下,反斜杠就在字符串文字,不在实际字符串中。

关于用于删除双反斜杠的 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10825373/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com