Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   replace глюк (https://javascript.ru/forum/css-html-internet-explorer/24719-replace-glyuk.html)

Zlyden 11.01.2012 19:04

replace глюк
 
Обнаружил странную особенность при замене. К примеру, такое выражение:
a="xy";
a=a.replace(/(x)(y)/g,"$2$1");
В итоге a="y1". Почему-то когда подстановка идёт вплотную друг к другу ($2$1), то первое вхождение заменяется вместе со следующим $, т.е. вместо того, чтобы подставлять y вместо $2, браузер подставляет y вместо $2$. При этом, если сделать замену таким образом:
a=a.replace(/(x)(y)/g,"$2"+"$1");
То всё работает как надо, на выходе "yx". Почему так?

Aetae 11.01.2012 19:44

lolwut?
a="xy";
a=a.replace(/(x)(y)/g,"$2$1");
alert(a)

Zlyden 11.01.2012 23:38

Aetae,
Да, действительно, в девятом ИЕ ответ нормальный. А вот в восьмом нет...

Aetae 12.01.2012 01:25

Работает всё во всех ие. Базовый функционал. Что-то вы явно желаете не так.

nerv_ 14.01.2012 11:18

Цитата:

Сообщение от Zlyden
в девятом ИЕ ответ нормальный. А вот в восьмом нет...

Ради любопытства проверил пример Aetae в восьмом IE - все нормально (а иначе быть и не могло).


Часовой пояс GMT +3, время: 19:24.