我在html数据属性中嵌入了一些数组数据。任何报价都已被转义(\")。
["A\A/A\"INC",3]
在我的javascript中,我有一个逃避反斜杠的功能
if(typeof dataarray === "string") {
dataarray = dataarray.replace(/\\/g,"\\\\");
}
然后它会中断,因为我正在逃避转义的反斜杠
["A\\A/A\\"INC",3]
有没有更好的方法来替换反斜杠,同时留下\"完整?
非常感谢
答案 0 :(得分:1)
使用负前瞻表达式确保下一个字符不是引号:
dataarray.replace(/\\(?!")/g,"\\\\");
x(?!y)
仅当
x
未跟x
后才匹配y
。例如,/\d+(?!\.)/
仅在数字后面没有小数点时与数字匹配。
/\d+(?!\.)/.exec("3.141")
匹配141但不匹配3.141。