Ошибка приведения типа в IE8 RegExp.exec ()? - PullRequest
4 голосов
/ 29 марта 2011

Я не знаю, является ли это известной проблемой в IE8, но я не могу найти какую-либо информацию о ней.

// The regex can vary but has to have a non-matching group defined:
var re = /^(\s)?[\d]+$/i;
// We call it with a string...
re.exec("2");
// We call it with a number...
re.exec(2);

Firefox и Chrome (не могу попробовать это в Opera прямосейчас) нет проблем ни с одним звонком.Но в IE8 второй вызов завершается с ошибкой «Объект не поддерживает это свойство или метод».

Это известная ошибка или что-то в этом роде?

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Я видел те же проблемы в приложении Ext JS 4.Многие вещи терпели неудачу, так как Ext JS время от времени передает числа в метод exec ().Выпуск оказался сторонней библиотекой SyntaxHighlighter.Удаление этого восстановило поведение IE8 по умолчанию и re.exec (2);сработало.

Я бы предложил сократить внешний JS, который вы включаете в свое приложение, пока не найдете виновника.

1 голос
/ 10 июня 2011

Поскольку exec принимает строку, я бы удостоверился, что вы передаете строку.Передавая число, я бы сказал, что вы пытаетесь рассчитывать на серые области того, как браузеры реализуют JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...