【发布时间】:2019-09-12 22:59:45
【问题描述】:
我们正在使用 JS 加载 JSON 数据,这些数据通常在换行符之前有多个反斜杠。示例:
{
"test": {
"title": "line 1\\\\\\\nline2"
}
}
我已经使用替换尝试了各种 RegEx 模式。 “奇怪”,如果有偶数个反斜杠,它们似乎可以工作,但不是奇数。
这个带有 2 个反斜杠的示例有效:
"\\n".replace(/\\(?=.{2})/g, '');
虽然这个样本,3 没有:
"\\\n".replace(/\\(?=.{2})/g, '');
下面是运行中的 js:
console.log('Even Slashes:');
console.log("\\n".replace(/\\(?=.{2})/g, ''));
console.log('Odd Slashes:');
console.log("\\\n".replace(/\\(?=.{2})/g, ''));
【问题讨论】:
-
\n是换行符的转义序列。\\是反斜杠字符的转义序列。所以\\n是一个反斜杠,后跟一个n,\\\n是一个反斜杠,后跟一个换行符,依此类推。 -
跟进@p.s.w.g 说。您是否要删除换行符之前的所有反斜杠?
-
只需尝试将
\\甚至更好的\\+删除为空字符串,这只会删除一次或多次出现的文字\,如果确实它们,它根本不会触及你的换行符是换行符,而不是文字反斜杠,后跟文字n -
@JuanMendes -- 是的,我正在尝试删除换行符之前的所有反斜杠。
-
@PushpeshKumarRajwanshi,谢谢,但这些解决方案都不起作用。
标签: javascript json regex