javascript转义反斜杠但不是反斜杠引用(转义报价)

时间:2014-09-19 17:59:42

标签: javascript replace

我在html数据属性中嵌入了一些数组数据。任何报价都已被转义(\")。

["A\A/A\"INC",3]

在我的javascript中,我有一个逃避反斜杠的功能

if(typeof dataarray === "string") {
  dataarray = dataarray.replace(/\\/g,"\\\\");
}

然后它会中断,因为我正在逃避转义的反斜杠

["A\\A/A\\"INC",3]

有没有更好的方法来替换反斜杠,同时留下\"完整?

非常感谢

1 个答案:

答案 0 :(得分:1)

使用负前瞻表达式确保下一个字符不是引号:

dataarray.replace(/\\(?!")/g,"\\\\");

来自MDN documentation

  

x(?!y)

     

仅当x未跟x后才匹配y。例如,/\d+(?!\.)/仅在数字后面没有小数点时与数字匹配。

     

/\d+(?!\.)/.exec("3.141")匹配141但不匹配3.141。