【问题标题】:javascript escape backslash but not a backslash quote (escaped quote)javascript 转义反斜杠但不是反斜杠引号(转义引号)
【发布时间】:2014-09-19 17:59:42
【问题描述】:

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

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

在我的 javascript 中,我有一个转义反斜杠的函数

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

但后来它中断了,因为我正在转义转义的引号反斜杠

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

有没有更好的方法来替换反斜杠同时保持 \" 不变?

非常感谢

【问题讨论】:

    标签: javascript replace


    【解决方案1】:

    使用否定的前瞻表达式来确保下一个字符不是引号:

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

    来自MDN documentation

    x(?!y)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 2015-05-19
      • 1970-01-01
      • 2011-11-14
      相关资源
      最近更新 更多