Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Загадки JavaScript

Что-то Internet Explorer меня нехорошо удивляет в последнее время. Кто-нибудь, не запуская, может сказать что получится, если выполнить в IE следующий JavaScript:

alert('a###a'.split(/#/))
alert('a###a'.split('#'))

Самое главное, мне непонятно — зачем это так сделано?

10 комментариев
aire.livejournal.com 2009

Ну, кстати, если бы оно так со всеми символами работало, еще можно было как-то объяснить. Чем им решетка-то не угодила? Может, это хак какой-то чтобы какой-нибудь известный сайт нормально работал у всех?

runmendev.livejournal.com 2009

а оно со всеми и работает, просто у них почему-то с регулярное выражение срабатывает как жадное

’a###a’.split(/#+/)

Евгений Степанищев (bolknote.ru) 2009

Комментарий для aire.livejournal.com:

Чёрт его знает.

besisland.livejournal.com 2009

Меня «ИЕ» нехорошо удивляет последние лет восемь-девять.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для besisland.livejournal.com:

IE6 был настоящим прорывом, до сих пор то, что там реализовано обсасывается в остальных браузерах.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для runmendev.livejournal.com:

Жадность — свойство квантификатора, а тут его нет.

Смирнофф (CTAPbIu.MABP.myopenid.com) 2009

так он себя не тока с шарпом так ведет

javascript:(function(){alert(’a%%%a’.split(/%/))})()

Евгений Степанищев (bolknote.ru) 2009

Комментарий для ctapbiu.mabp.myopenid.com:

Я и не говорил, что только с ним.

Азат Разетдинов (razetdinov.ya.ru) 2009

Есть несколько кроссбраузерных несовместимостей при использовании регулярного выражения в качесте разделителя в методе String.prototype.split: http://xregexp.com/cross_browser/

Евгений Степанищев (bolknote.ru) 2009

Комментарий для razetdinov.ya.ru:

Спасибо! Полезная ссылка!