llgruff
@llgruff
PHP в прошлом, сейчас Scala. Не зовите меня на WP.

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

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

Войти через центр авторизации
Похожие вопросы
The ZAL Москва
от 140 000 до 180 000 ₽
АКМЭ сервис Санкт-Петербург
от 120 000 до 150 000 ₽
Директ Кредит Казань
от 70 000 до 120 000 ₽
12 авг. 2020, в 23:54
25000 руб./за проект
12 авг. 2020, в 23:41
6000 руб./за проект
12 авг. 2020, в 20:48
10000 руб./за проект