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". Почему так?
|