раздеть комментарии
Удалить каждые Css комментарии (в или дополнительном блоке и со звездами *
внутри) с использованием функции replace
со следующим регулярным выражением:
/\s*[/][*](?:[^*]|[*][^/])*[*][/][ \t]*/g
Regex Breakout Regex101 Demo
/ # Regex start delimiter
\s* # select any whitespace char (including the newlines preceding the comment)
[/][*] # match comment start delimiter '/*'
(?:[^*]|[*][^/])* # select zero or more not star ('*') chars (also newlines)
# or a star and the following char (that is not '/')
[*][/] # match comment stop delimiter '*/'
[ \t]* # match any space or tabs (no newlines to preserve indentations)
/g # Regex close delimiter and global flag
О выполнении: Код ниже 14 раз быстрее, чем код, предложенный в другом ответе с ленивым модификатором:
Живая Js Demo
var filter = /\s*[/][*](?:[^*]|[*][^/])*[*][/][ \t]*/g;
var input = '.class-n {\n\n}\n\n/* Select everything but these comments */\n\n.class-1 {\n font-family: \'SourceCodePro\';\n font-size: 16px; /* a comment with\n **stars***** */\n line-height: 18px;\n}\n\n/* Select everything but these comments */\n\n.class-2 {\n background-color: rgb(40, 40, 40); /* another\n inline comments that\nspans on multiple lines */\n border: 1px solid rgb(20, 20, 20);\n padding: 10px 15px 10px 15px;\n}\n\n/* Single line */\n\n/* Multiline\n Comment */\n';
var output = input.replace(filter,'');
document.getElementById('input').innerHTML += '<xmp>' + input + '</xmp>';
document.getElementById('output').innerHTML += '<xmp>' + output + '</xmp>';
.flexbox-container {
\t display: -ms-flex;
\t display: -webkit-flex;
\t display: flex;
}
.flexbox-container > div {
\t width: 50%;
\t padding: 15px;
border:1px solid black;
}
.flexbox-container > div:first-child {
\t margin-right: 15px;
}
<div class="flexbox-container">
\t <div id="input"><h3>Original Css</h3></div>
\t <div id="output"><h3>Stripped Css</h3></div>
</div>
** Я не хочу выбирать комментарии ** ... Я хочу, чтобы все остальное, кроме комментариев! .. Спасибо – duckduckgo
Могут ли комментарии быть где угодно, например, также в середине строки? – lex82
@torazaburo: вы не знаете, где этот код используется. Для downvote также приводятся причины (это не JS - это CSS) или действительные контрпримеры (они приветствуются). –