在 Internet Explorer 10 中,这:
'abcdefghi'.match(/.?e.?/)
['def']如我所料,计算结果为,但在 Firefox 21.0 中,计算结果为['abcdefghi']. (请参阅此 jsFiddle。)对于某些其他以可选内容开头和结尾的正则表达式(例如/.?e.{0,2}/and /.{0,2}e.{0,2}/; 但是,评论者指出了各种类似的正则表达式,例如/\S?e\S?/and /(?:.?e.?)/,它们不受影响。这同样适用于该replace方法。
我错过了一些明显的东西吗?这种行为有什么深层原因吗?