llgruff
@llgruff
Scala

Как удалить комментарии из JS файла регуляркой PHP?

0. Получаю содержимое JS файла, который хочу "очистить":
$content .= file_get_contents($file);
1. Удаляю комментарии вида
/* комментарий */
/*
 * комментарий
 */

$content = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $content);

2. Удаляю пробелы, новые, строки переносы:
$content = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '   ', '    '), '', $content);

Вопрос
На шаге №1 регулярка не чистит комментарии начинающиеся с //
Например в таком куске JS кода:
if (val && ! val.match(/^[a-z][a-z0-9.+-]*:/i)) { // check the scheme part
  val = val.replace(/^\/+/, '');
  val = 'http://' + val;
}

Как записать новую доп.регулярку?
P.S. вроде // встречается в js в 2-х случаях, либо ссылки, либо комментарии
  • Вопрос задан
  • 1957 просмотров
Решения вопроса 1
@OVK2015
Как-то так: https://regex101.com/r/fI8pO8/1
Попробуйте
(\/\/(.*?)(\n|$|\r|(\r\n)))|(\/\*(.*?)\*\/)
Это для переносов строк в Win/Linux/Mac
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы