2009-12-18 69 views
6

在IE中,"x".split(/(x)/).length回報0任何人都知道爲什麼「x」.split(/(x)/)。長度在IE中返回0?

在火狐,Chrome,Safari和Opera,它返回3

有人知道原因嗎?如有可能,將不勝感激參考鏈接。

我認爲這是一個IE正則表達式的實現問題,但我找不到任何關於這個的文檔。

+0

哪個版本的IE? – 2009-12-18 13:46:46

+0

IE6,7,8據我所知 – YOU 2009-12-18 13:55:33

回答

6

你是正確的,有執行問題。 IE都會忽略空值並在正則表達式中捕獲塊。

所以對於

"foo".split(/o/) 

IE給出

[f] 

在其他瀏覽器給

["f","",""] 

,當你添加捕捉:

"foo".split(/(o)/) 

IE執行相同的,但其他人拍攝的分隔符添加到結果數組給

["f","o","","o",""] 

所以,不幸的是,你可能要麼需要避免使用分割,或代碼解決這些問題。

+0

+1,謝謝你的更多細節,分析。 – YOU 2009-12-18 14:06:12

1

我有與拆分的IE瀏覽器破壞相同的問題。

下面是一個小的library文件,可以很好地解決問題。

相關問題