Программирование > JavaScript & JScript
str.replace - грабли
(1/1)
CGVictor:
Господа, возникла вот такая вот непонятная проблема:
--- Код: ---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 кеширует что-то где-то...
Макс:
User: Bob
User: Mary
это FF и Opera вывели
CGVictor:
Макс
Спасибо большое!..
Протестил на лругих компах. Всё работает...
[off]Убито полдня времени.
Ушел сносить систему.[/off]
Навигация
Перейти к полной версии