2016-05-10 6 views
1

Я использую Highlight js plugin, который автоматически отступает от моего кода. Моя IDE также автоматически отступает от моего кода.Regex удалить пробелы из каждой строки start

<div> 
    <div> 
     <pre> 
       <code> 
        <h1>Hello world</h1> 
       </code> 
     </pre> 
     </div> 
</div> 

Я хотел бы, чтобы это:

<h1>Hello word</h1> 

Но поскольку Highlight JS не делает относительную indetation я в конечном итоге с этим:

    <h1>Hello world</h1> 

Так что я пытался что-то вроде этого

$('pre code').html($('pre code').html().replace(/^\s{24,}/g,'')); 

И i t отлично работает для первой строки строки, но я хотел бы сделать это в каждой строке -> Удалите каждые 24 первых пробела из каждой строки.

+0

сделали вы уже пробовали эти большие онлайн Regex помощников, как: HTTPS://regex101.com/ –

+0

Да, я пробовал, но мой мозг постоянно устойчив: '( – Su4p

+1

'.replace (/^\ s {24,}/gm,' ')' или лучше: '.replace (/^[^ \ S \ r \ n] {24,}/gm, '') '. Я подсчитал только 19 пробелов в вашем примере: ['/^ [^ \ S \ r \ n] {19,}/gm'] (https: //regex101.com/r/wY5cB5/1) –

ответ

1

две вещи:

  • \s спички новой строки, тоже, так что вам нужно [^\S\r\n], чтобы соответствовать любой горизонтальный пространство
  • Модификатор /m требуется сделать ^ соответствует началу строки, а не всей строки.

Поскольку я насчитал только 19 места в вашем примере выше, здесь является рабочим регулярное выражение:

/^[^\S\r\n]{19,}/gm 

Смотрите regex demo

+1

Наконец я использовал это:/^ [^ \ S \ r \ n] {19}/gm спасибо – Su4p