在IE中,"x".split(/(x)/).length
回報0
任何人都知道爲什麼「x」.split(/(x)/)。長度在IE中返回0?
在火狐,Chrome,Safari和Opera,它返回3
。
有人知道原因嗎?如有可能,將不勝感激參考鏈接。
我認爲這是一個IE正則表達式的實現問題,但我找不到任何關於這個的文檔。
在IE中,"x".split(/(x)/).length
回報0
任何人都知道爲什麼「x」.split(/(x)/)。長度在IE中返回0?
在火狐,Chrome,Safari和Opera,它返回3
。
有人知道原因嗎?如有可能,將不勝感激參考鏈接。
我認爲這是一個IE正則表達式的實現問題,但我找不到任何關於這個的文檔。
你是正確的,有執行問題。 IE都會忽略空值並在正則表達式中捕獲塊。
所以對於
"foo".split(/o/)
IE給出
[f]
在其他瀏覽器給
["f","",""]
,當你添加捕捉:
"foo".split(/(o)/)
IE執行相同的,但其他人拍攝的分隔符添加到結果數組給
["f","o","","o",""]
所以,不幸的是,你可能要麼需要避免使用分割,或代碼解決這些問題。
+1,謝謝你的更多細節,分析。 – YOU 2009-12-18 14:06:12
我有與拆分的IE瀏覽器破壞相同的問題。
下面是一個小的library文件,可以很好地解決問題。
哪個版本的IE? – 2009-12-18 13:46:46
IE6,7,8據我所知 – YOU 2009-12-18 13:55:33