在 IE 中的 JavaScript split() 函數
阿恆
Harry Fuecks 在 Site Point 說了一個令他困惑的問題:IE 中的 JavaScript split() 函數並不符合規範。
Fuecks 引述 ECMA-262(即 JavaScript 1.5,參考「用 ECMAScript 寫網頁」)中有關 split() 函式的定義:
若果正規表達式裏面的分隔字符有括號包圍,每當分隔字符被搜尋到,括號中的內容便會被切割出來放到輸出的陣列裏。……
Fuecks 認為這種語法在其他編程語言很常見,例如在 Perl 中:
|
|
輸出是:
|
|
這是正確的輸出。在 PHP 中:
|
|
輸出是:
|
|
顯然這個也跟規範吻合。在 Python 中:
|
|
輸出是:
|
|
這也是正確的。在 Firefox 和 Opera 9 中使用 JavaScript:
|
|
輸出是:
|
|
毫不意外地兩個瀏覽器都輸出了正確的結果。但是到了 IE 手上,這個函數的輸出變成了:
|
|
IE 喜歡獨樹一幟的又一例證。