IE и Firefox вопрос регулярного выражения - PullRequest
1 голос
/ 21 августа 2010

Почему следующий шаблон в 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

1 Ответ

3 голосов
/ 21 августа 2010
var str = 'a,b,c , d,   e   ,f';
var matches = str.split(/\s*,\s*/);
alert(matches);

Причина, по которой вы получаете дополнительные записи в Firefox, заключается в том, что круглые скобки (()) в вашем регулярном выражении фиксируются как дополнительные совпадения.Обычно это ожидаемое поведение, и я бы сказал, что в IE есть ошибка, потому что он этого не делает.В моем примере в регулярном выражении нет скобок, поэтому между совпадениями вы получаете только текст.

...