Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: CGVictor от 01 Февраля 2006, 15:50:39

Название: str.replace - грабли
Отправлено: CGVictor от 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 кеширует что-то где-то...
Название: str.replace - грабли
Отправлено: Макс от 01 Февраля 2006, 15:58:05
User: Bob
User: Mary

это FF и Opera вывели
Название: str.replace - грабли
Отправлено: CGVictor от 01 Февраля 2006, 16:03:40
Макс
Спасибо большое!..

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

[off]Убито полдня времени.
Ушел сносить систему.[/off]