1

このコードは、Firefox と IE8 で異なる結果をもたらします。

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var splitArray = text.split(/[\[\]]/);
alert(splitArray.length);   

Firefox では、アラートは 7 を返します。一方、IE では 5 を返します。

私は試した...

Internet Explorer での Javascript RegEx の問題

しかし、うまくいきません。

何かアイデアはありますか?ありがとう!

4

1 に答える 1

0

次のコードは完全にはテストされていませんが、簡単なテストでは問題なく動作します:

IE8 以下の分割動作を取得するには:

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var arr = text.match(/[^\[\]]+/g);
// arr is ["AMOUNT", " MILES DEDUCTED IN ", "CABIN", " FOR ", "ORIGIN"]

FF 分割動作を取得するには:

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var arr = text.match(/[^\[\]]+|^(?=[\[\]])|[^\[\]]?(?=[\[\]]$)|[^\[\]]?(?=[\[\]]{2})/g);
// arr is ["", "AMOUNT", " MILES DEDUCTED IN ", "CABIN", " FOR ", "ORIGIN", ""]
于 2012-08-24T16:04:28.957 に答える