In Internet Explorer 10, dies:/.?e.?/ paßt gesamte Zeichenfolge, eher als erwartete Teilzeichenfolge
'abcdefghi'.match(/.?e.?/)
zu ['def']
auswertet, wie ich erwarten würde, aber in Firefox 21,0, wertet auf ['abcdefghi']
. (Siehe this jsFiddle.) Ich bekomme die gleiche Art von unerwartetem Verhalten für bestimmte andere Regexes, die beide mit optionalem Inhalt beginnen und enden, wie /.?e.{0,2}/
und /.{0,2}e.{0,2}/
; Kommentatoren weisen jedoch auf verschiedene ähnliche Regexes hin, wie /\S?e\S?/
und /(?:.?e.?)/
, die nicht betroffen sind. Gleiches gilt für die Methode replace
.
Fehle ich etwas offensichtlich? Gibt es einen tiefen Grund für dieses Verhalten?
Nun in Chrom sein: 'e de ef cdef' +1 für diese. –
Nun, das Hinzufügen einer Gruppe scheint * zu korrigieren * es: ''abcdefghi'.match (/ (?:.? E.?) /)'. Aber ich vermute, Bug. –
Das gleiche Problem taucht in Firefox 22 auf, aber es sollte angemerkt werden, dass '/.?.?/' ordnungsgemäß funktioniert, ebenso wie '/ e.? /' Und '/.? E /' – SheetJS