例如:
"1+1=2".replace(/=/,"aa");
"1+1=2".replace(/\=/,"aa");
返回相同的结果。
这是否意味着我不必在JavaScript中转义“=”(等号)?我记得我总是要在Java和.NET中逃脱等号。
我试图从https://www.ecma-international.org/ecma-262/7.0/index.html找到一些信息但没有提出任何信息。
任何人都可以帮我找到规范是否谈到逃避等号?
答案 0 :(得分:1)
我会在MDN网络文档中使用this table。您会看到=
没有特殊含义-就像@Barmar所说的那样。您提到了lookaheads,它使用?=
,但是没有前导?
的情况下,它只是一个等号。
没有多少特殊字符需要额外的特殊字符来“起作用”,我想这就是它令人困惑的原因。可以将其与-
和[
组合为]
:
0-9
匹配“ 0-9” [0-9]
匹配“ 0” 和“ 1” 和 ... 和“ 9” [0\-9]
匹配“ 0”,“ 1”和...以及“ 9” 和“-” 因此,-
毫无意义,并且仅在与方括号结合使用时才需要转义。对于=
,有/没有?
也是如此。