Тема: replace глюк
Показать сообщение отдельно
  #1 (permalink)  
Старый 11.01.2012, 19:04
Интересующийся
Отправить личное сообщение для Zlyden Посмотреть профиль Найти все сообщения от Zlyden
 
Регистрация: 27.10.2010
Сообщений: 19

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". Почему так?
Ответить с цитированием