Показать сообщение отдельно
  #10 (permalink)  
Старый 28.11.2014, 18:16
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

сабжевая замена делается за один реплейс.
Упрощенный пример: в тексте есть числа, и те из них, которые больше 100, заменить на слово "PREVED"
var str = "gdfnfdn 6546754 tehterth 4 474 ghgfd 67 hfgdggj  111";
var strNew = str.replace(/\d+/g, function(a) {
  return parseInt(a, 10) > 100 ? "PREVED" : a;
});
alert(strNew);


как этот пример допилить к сабжу, думаю, понятно.

---
но это если операции с файловой системой синхронные. А если асинхронные (как и должно быть на сервере) - то чуть сложнее: обходим строку в цикле, как в твоем коде, находим все файлы, добавляем их в карту и по каждому запускаем асинхронный fs.exists. Калбэки к fs.exists подставляют в карту значения true, если файл есть. Ну и последний сработавший калбэк делает вышеупомянутый реплейс, используя карту.
Ответить с цитированием