Почему следующее регулярное выражение не работает в IE? - PullRequest
0 голосов
/ 16 июня 2010

Почему следующее регулярное выражение javascript работает в Firefox, но не в IE (протестировано в IE8).

myregexp = eval('/(?:^|;)\s*(\d+)\s*:[^;]*?megason[^;]*/gi');
myregexp.exec('0:QL12345ABC - MEGASONIAC BEST CAFE;'); //returns null in IE8

Ответы [ 2 ]

1 голос
/ 16 июня 2010

вы должны добавить косые черты:

myregexp = eval('/(?:^|;)\\s*(\\d+)\\s*:[^;]*?megason[^;]*/gi');

, но, как сказал Керри, в этом контексте eval не подходит, используйте вместо этого:

myregexp = /(?:^|;)\s*(\d+)\s*:[^;]*?megason[^;]*/gi;

или

myregexp = new RegExp('(?:^|;)\\s*(\\d+)\\s*:[^;]*?megason[^;]*','gi');
0 голосов
/ 16 июня 2010

eval не рекомендуется, и нет никаких причин использовать его в этом случае.

Кроме того, я хотел бы просмотреть этот список:
http://www.javascriptkit.com/javatutors/redev3.shtml

Чтобы увидеть, если выхотите использовать exec или нет.

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