Показать сообщение отдельно
  #4 (permalink)  
Старый 12.06.2016, 19:39
Новичок на форуме
Отправить личное сообщение для SlavetZ Посмотреть профиль Найти все сообщения от SlavetZ
 
Регистрация: 08.06.2016
Сообщений: 4

Урра! наговнокодил и оно работает...
Ищу упоминания файлов в html-ке, потом в тех файлах которые упоминались в html-ке
и раскладываю их как нужно...
для этого использую RegExp и читаю файлы по строкам на предмет соответствия имен файлов определенным типам

Подскажите пожалуйста можно оптимизировать эту часть кода?

//Список принадлежности файлов
//Используется при gulp.dest и в создании RegExp
var imageList = ['*.png','*.gif','*.jpg','*.jpeg','*.svg'];
var cssList = ['*.css'];
var jsList = ['*.js','*.json'];
var pdfList = ['*.pdf'];
var videoList = ['*.mp4','*.ogv','*.webm'];
var fontsList = ['*.otf','*.ttf','*.woff','*.eot','*.svg'];

//Список принадлежности в строку вида png|gif|jpg|jpeg|svg для RegExp
//преобразования всех переменных однотипные... код нужно оптимизировать
var imageString = imageList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');
var cssString = cssList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');
var jsString = jsList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');
var pdfString = pdfList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');
var videoString = videoList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');
var fontsString = fontsList.toString().replace(/(\'|\"|\*|\.)/gim, '').replace(/\,/gim, '|');

//Базовое выражение RegExp для поиска файлов в строках
var baseReg = (/((?:((?:[^\(\\\'\"\r\n\t\f\/ ])*)\.(?:(filenames)\b)))/gim).toString().replace(/(^\/|\/gim)/gim, '');

//Выражение RegExp для поиска файлов в строках по списку принадлежности
//преобразования всех переменных однотипные... код нужно оптимизировать
var imageReg = new RegExp(baseReg.replace('filenames', imageString), 'gim');
var cssReg = new RegExp(baseReg.replace('filenames', cssString), 'gim');
var jsReg = new RegExp(baseReg.replace('filenames', jsString), 'gim');
var pdfReg = new RegExp(baseReg.replace('filenames', pdfString), 'gim');
var videoReg = new RegExp(baseReg.replace('filenames', videoString), 'gim');
var fontsReg = new RegExp(baseReg.replace('filenames', fontsString), 'gim');

Последний раз редактировалось SlavetZ, 12.06.2016 в 19:44.
Ответить с цитированием