例如:

"1+1=2".replace(/=/,"aa");
"1+1=2".replace(/\=/,"aa");

返回相同的结果。

这是否意味着我不必在JavaScript中转义“=”(等号)?我记得在Java和.NET中我总是必须转义等号。

我试图从https://www.ecma-international.org/ecma-262/7.0/index.html中找到一些信息,但没有提出任何建议。

谁能帮助我找到规范中是否包含转义等号的内容?

最佳答案

我会在MDN网络文档中使用this table。您会看到=没有特殊含义-就像@Barmar所说的那样。您提到了lookaheads,它使用?=,但是没有前导的?,它只是一个等号。

没有太多的特殊字符需要额外的特殊字符来“工作”,我想这就是它令人困惑的原因。将其视为-[]结合使用:

  • 0-9匹配“0-9”
  • [0-9]匹配“0” “1” ... “9”
  • [0\-9]匹配“0”和“1”以及...和“9” 和“-”

  • 因此,仅-仅与方括号结合使用才没有意义,也不必转义。带有/不带有=?也是如此。

    关于javascript - 为什么我不必逃脱等号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40776347/

    10-10 16:38