Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Алгоритм,оптимизации JavaScript  (Прочитано 5560 раз)
0 Пользователей и 1 Гость смотрят эту тему.
pokk
Помогающий

ru
Offline Offline

« : 11-11-2017 14:37 » 

Добрый день, периодически приходиться сжимать исходник JavaScript делал это через    https://closure-compiler.appspot.com/home
но теперь это не много надоело, копировать туда суда код, по этому в качестве обучения новому языку, решил сделать такое на java.

И тут возникли проблемы, как удалить комментарии более менее понятно, ищем // и удаляем все за ним.
А вот как удалить "ненужные" пробелы не совсем понятно. 

Код:
function hello(name) {    и вот тут типа кучу пробелов осталось а потом только стоит символ перевода на новую строку
  alert('Hello, ' + name);
}
hello('New user');
 
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 11-11-2017 16:38 » 

Ну тут два пути:
1) (hardcore) Разбирать посимвольно весь код с помошью конечных автоматов.
2) Построчно и применять регулярные выражения. Чтоб поменьше использовать шаблонов, можно также применить конечный автомат. Например, сразу после объявления функции и без тела функции не может идти еше одна функция. И так в таком роде искать закономерности.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 11-11-2017 19:15 » 

http://yui.github.io/yuicompressor/
и масса minyfy'еров
а для простых скриптов вполне подойдет и регулярка..

Есть одно условие, выражение должно заканчиваться точка с запятой

Хотя , конечно и это можно обойти

Несколько  регулярок с реплейсом на пробел

Только для наглядности!!!!

#//$#
#[\n\r]#
#\b{1,}#


« Последнее редактирование: 11-11-2017 19:23 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines