18 lines
No EOL
1.1 KiB
Markdown
18 lines
No EOL
1.1 KiB
Markdown
Нужно найти начало комментария <code class="match"><!--</code>, затем всё до конца <code class="match">--></code>.
|
||
|
||
С первого взгляда кажется, что это сделает регулярное выражение <code class="pattern"><!--.*?--></code> -- квантификатор сделан ленивым, чтобы остановился, достигнув <code class="match">--></code>.
|
||
|
||
Однако, точка в JavaScript -- любой символ, *кроме* конца строки. Поэтому такой регэксп не найдёт многострочный комментарий.
|
||
|
||
Всё получится, если вместо точки использовать полностю "всеядный" <code class="pattern">[\s\S]</code>.
|
||
|
||
Итого:
|
||
|
||
```js
|
||
//+ run
|
||
var re = /<!--[\s\S]*?-->/g;
|
||
|
||
var str = '.. <!-- Мой -- комментарий \n тест --> .. <!----> .. ';
|
||
|
||
alert( str.match(re) ); // '<!-- Мой -- комментарий \n тест -->', '<!---->'
|
||
``` |