为什么我不能逃脱等号?

时间:2016-11-24 00:31:11

标签: javascript regex

例如:

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

返回相同的结果。

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

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

任何人都可以帮我找到规范是否谈到逃避等号?

1 个答案:

答案 0 :(得分:1)

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

没有多少特殊字符需要额外的特殊字符来“起作用”,我想这就是它令人困惑的原因。可以将其与-[组合为]

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

因此,-毫无意义,并且仅在与方括号结合使用时才需要转义。对于=,有/没有?也是如此。