У меня есть некоторый HTML-код со встроенным JavaScript в теге <script>
, который содержит регулярное выражение, удаляющее лишние пробелы между символами >
и <
, как в
<script>
[...]
output = output.replace(/>\s*</g, '><');
[...]
</script>
Это недопустимоHTML (например, в соответствии с PHP DOMDocument->loadHTML()
), поскольку последовательность символов </
завершает обработку и, как ожидается, за ней последует остальная часть закрывающего тега script>
.
Я попытался экранировать <
как <
, но затем выражение больше не соответствует (проверено в jsfiddle ).
Обходной путь - вставить что-то в регулярное выражениеэто на самом деле ничего не делает, но отделяет <
от /
, например
output = output.replace(/>\s*[<]/g, '><');
Это работает и имеет ожидаемое поведение, но выглядит как ужасный взлом.
Как правильно выбрать <
перед /
в регулярном выражении js?