Автор Тема: str.replace - грабли  (Прочитано 3213 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
str.replace - грабли
« : 01 Февраля 2006, 15:50:39 »
Господа, возникла вот такая вот непонятная проблема:

function parseIn(text,data) {
for(item in data) {
text = text.replace(\'{\'+item+\'}\',data[item]);
//alert(item+\'\\n\'+data[item]);
}
return text;
}
var text = \'User: {username}\';
alert(parseIn(text,{username:\'Bob\'}));
alert(parseIn(text,{username:\'Mary\'}));

Как результат выведет два раза данные из первого вызова, т.е. "User: Bob".
При этом, если раскомментить тестовый вывод внутри функции - он выдаст правильные данные.

Где грабли?

Такое ощущение, что replace кеширует что-то где-то...
LJ: Backslashed life (rss)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
str.replace - грабли
« Ответ #1 : 01 Февраля 2006, 15:58:05 »
User: Bob
User: Mary

это FF и Opera вывели
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
str.replace - грабли
« Ответ #2 : 01 Февраля 2006, 16:03:40 »
Макс
Спасибо большое!..

Протестил на лругих компах. Всё работает...

[off]Убито полдня времени.
Ушел сносить систему.[/off]
LJ: Backslashed life (rss)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28