2013-04-16 66 views
3

我需要一個「分裂」的功能,將工作在每一個版本的IE開始8相同的方式(是的,只有IE瀏覽器,因爲這是一個使用WebBrowser控件的應用程序)。下面的代碼將提醒「2」上IE 8和「3」上IE 9+:跨瀏覽器的JavaScript分裂

var step1_slices = "One.Two.".split(new RegExp("\\.", "g")); 
alert(step1_slices.length); 

我是第一個過這個問題運行還是有一個已知的解決方案呢?

+1

爲什麼不' 「One.Two。」 分裂( '')'? –

+0

這只是一個示例。我需要的是一個可以在每個採用REGEX的IE版本上工作的分割。如果我真的想分割字符串「One.Two」。在點上我會手動做。 – Juan

+4

http://blog.stevenlevithan.com/archives/cross-browser-split – Aesthete

回答

2

我是第一個到過這個問題

沒有運行,舊的瀏覽器中實現拆分不同,當分隔符是一個字符串的開始或結束。有些人在兩端保留空的字符串,有些保留最後一個字符串,有些像IE,只保留空的匹配,如果他們在字符串的主體。現代瀏覽器都保持兩個外行。

解決任何差異的最簡單方法是讓IE9 +像IE8一樣操作 - 查看數組的第一個和最後一個元素,並在未定義或空字符串時將其刪除。

String.prototype.split8=function(delim){ 
    var A=this.split(delim); 
    if(!A[0])A.shift(); 
    if(!A[A.length-1)A.pop(); 
    return A; 
}