2010-08-21 21 views
1

爲什麼IE和Firefox的匹配結果不一樣?IE和Firefox的正則表達式問題

var str = 'a,b,c , d, e ,f'; 
var matches = str.split(/(\s+)?,(\s+)?/); 
alert(matches); 

IE: 
a,b,c,d,e,f 

firefox: 
a,,,b,,,c, , ,d,, ,e, ,,f 

如何匹配像IE結果? 請回答我:(

IE8和Firefox瀏覽器v3.6.8

+0

什麼版本的IE和FireFox? – 2010-08-21 03:02:22

回答

3
var str = 'a,b,c , d, e ,f'; 
var matches = str.split(/\s*,\s*/); 
alert(matches); 

您得到在Firefox的附加項的原因是因爲在你的正則表達式的括號(())被捕獲額外的匹配。這通常是預期的行爲,我會爭辯說,IE有一個錯誤,因爲它沒有這樣做。在我的例子中,在正則表達式中沒有括號,所以你只能得到匹配之間的文本

+0

答案已撤銷,+1,因爲你實際上知道它爲什麼是doi那個xD – Matchu 2010-08-21 03:09:07