在 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
方法。
我错过了一些明显的东西吗?这种行为有什么深层原因吗?