Regex удаляет пробелы в начале каждой строки
Я использую плагин Highlight js, который автоматически выравнивает мой код. Моя IDE также автоматически делает отступ для моего кода.
<div>
<div>
<pre>
<code>
<h1>Hello world</h1>
</code>
</pre>
</div>
</div>
Я хотел бы иметь это:
<h1>Hello word</h1>
Но так как Highlight js не выполняет относительную неопределенность, я получаю следующее:
<h1>Hello world</h1>
Поэтому я попробовал что-то вроде этого
$('pre code').html($('pre code').html().replace(/^\s{24,}/g,''));
И это нормально работает для первой строки строки, но я хотел бы сделать это на каждой строке -> Удалять каждые 24 первых пробела с начала каждой строки.
1 ответ
Решение
Две вещи:
\s
соответствует символу новой строки, так что вам нужно[^\S\r\n]
соответствовать любому горизонтальному пространству/m
модификатор требуется сделать^
соответствует началу строки, а не всей строки.
Так как в приведенном выше примере я насчитал только 19 пробелов, вот рабочее выражение:
/^[^\S\r\n]{19,}/gm
Посмотреть демо-версию регулярного выражения