例如:
"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/