Помогите подправить регулярку для удаления комментариев из javascript

Тема в разделе "Регулярные выражения", создана пользователем Smile, 30 апр 2016.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    Здравствуйте,

    нужно удалить все комменты следующего типа (//коммент) между тэгами <script></script> в HTML ответе.

    На данный момент у меня есть:

    1. <script\b[^>]*>([\s\S]*?)<\/script>

    или

    <script(.*?)>(.*?)<\/script>

    (выберает весь текст между <script></script>)

    2. (?<!\S)\/\/\s*[^\r\n<\/]*

    (удаляет //коммент)

    Помогите создать из этих 2 регулярок 1 которая бы удаляла коменты между тэгами <script></script>.

    Спасибо.
     
    Последнее редактирование: 30 апр 2016
  2. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    237
    Симпатии:
    315
    PHP:
    $re = <<<'END'
    @
    (?: <script[^>]*>
      | \G(?!\A)
    )
    (?: [^"/<]+
      | "(?:[^\\"]+|\\.)*"
      | '(?:[^\\']+|\\.)*'
      | /(?!/)
      | <(?!/script)
    )*+
    \K //[^\n]*
    @xs
    END;


    echo 
    preg_replace($re''$text);
     
    Smile нравится это.
Статус темы:
Закрыта.