2010-08-21 20 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