Загадки JavaScript
Что-то Internet Explorer меня нехорошо удивляет в последнее время. Кто-нибудь, не запуская, может сказать что получится, если выполнить в IE следующий JavaScript:
alert('a###a'.split(/#/))
alert('a###a'.split('#'))
Самое главное, мне непонятно — зачем это так сделано?
Ну, кстати, если бы оно так со всеми символами работало, еще можно было как-то объяснить. Чем им решетка-то не угодила? Может, это хак какой-то чтобы какой-нибудь известный сайт нормально работал у всех?
а оно со всеми и работает, просто у них почему-то с регулярное выражение срабатывает как жадное
’a###a’.split(/#+/)
Комментарий для aire.livejournal.com:
Чёрт его знает.
Меня «ИЕ» нехорошо удивляет последние лет восемь-девять.
Комментарий для besisland.livejournal.com:
IE6 был настоящим прорывом, до сих пор то, что там реализовано обсасывается в остальных браузерах.
Комментарий для runmendev.livejournal.com:
Жадность — свойство квантификатора, а тут его нет.
так он себя не тока с шарпом так ведет
javascript:(function(){alert(’a%%%a’.split(/%/))})()
Комментарий для ctapbiu.mabp.myopenid.com:
Я и не говорил, что только с ним.
Есть несколько кроссбраузерных несовместимостей при использовании регулярного выражения в качесте разделителя в методе String.prototype.split: http://xregexp.com/cross_browser/
Комментарий для razetdinov.ya.ru:
Спасибо! Полезная ссылка!