Gibt es einen Standard, der sagt, ob "aba" .split (/ a /) 1,2 oder 3 Elemente zurückgeben soll?

9

Von dem, was ich getestet habe

%Vor%

gibt

zurück
  • 1 in ie8
  • 3 in Firefox, Chrome, Oper

Ich war immer bereit, Unterschiede in der DOM-Manipulation oder im Event-Modell zu behandeln, aber ich dachte, dass Dinge wie Strings, Regexps usw. gut definiert sind. Habe ich mich geirrt?

    
qbolec 23.11.2012, 07:53
quelle

1 Antwort

4

IE entfernt alle nicht definierten oder leeren Zeichenfolgen aus dem split Ergebnis-Array.

Da Ihre Frage nach der Existenz eines Standards zu sein scheint, ist EcmaScript die beste Übereinstimmung in der Javascript-Welt.

Und das Verhalten von split auf regex ist dokumentiert: Ссылка

Wie aus dem Beispiel ersichtlich, sollten leere Strings nicht aus dem resultierenden Array entfernt werden, so dass IE (wie vermutet) fehlerhaft ist.

%Vor%

Tatsächlich gibt es andere Unterschiede zwischen Browsern. Eine Lösung könnte sein, ein browserübergreifendes Split-Regex-Skript zu verwenden, aber es ist wahrscheinlich besser, sich dessen bewusst zu sein die Unterschiede und behandeln mit richtigen Tests das Array von split zurückgegeben. Oder benutze ein paar Tricks.

    
Denys Séguret 23.11.2012, 08:08
quelle

Tags und Links