为什么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 :(得分:3)
var str = 'a,b,c , d, e ,f';
var matches = str.split(/\s*,\s*/);
alert(matches);
您在Firefox中获取额外条目的原因是因为正则表达式中的括号(()
)被捕获为其他匹配项。这通常是预期的行为,我认为IE有一个bug,因为它没有这样做。在我的示例中,正则表达式中没有括号,因此您只获得匹配项之间的文本。