2016-05-10 14 views
1

Ich benutze Highlight js plugin, die automatisch meinen Code einzahnt. Meine IDE fügt auch automatisch meinen Code ein.Regex löschen Leerzeichen von jeder Zeile Start

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

Das möchte ich haben:

<h1>Hello word</h1> 

Aber weil Highlight js nicht relativ indetation tut ich mit diesem Ende:

    <h1>Hello world</h1> 

So habe ich versucht, so etwas wie dieses

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

Und ich t funktioniert gut für die erste Zeile der Zeichenfolge, aber ich möchte dies in jeder Zeile tun -> Entfernen Sie alle 24 ersten Leerzeichen von jeder Zeile Start.

+0

haben Sie schon diese großen Online-Regex Helfer wie versucht: https://regex101.com/ –

+0

Ja, ich habe versucht, aber mein Gehirn ist regexproof: '( – Su4p

+1

'.replace (/^\ s {24,}/gm,' ')' oder besser: '.replace (/^[^ \ S \ r \ n] {24,}/gm, '') 'Ich habe nur 19 Leerzeichen in deiner Probe gezählt: ['/^ [^ \ S \ r \ n] {19,}/gm'] (https: //regex101.com/r/wY5cB5/1) –

Antwort

1

Zwei Dinge:

  • \s Streichhölzer Zeilenumbrüche auch so müssen Sie ein [^\S\r\n] jede horizontal Raum passen
  • Der /m Modifikator benötigt wird ^ Spiel der Anfang einer Zeile zu machen, nicht einer ganzen Saite.

Da ich nur 19 Räume in der obigen Probe gezählt, ist hier eine Arbeits regex:

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

den See regex demo

+1

Schließlich habe ich das verwendet:/^ [^ \ S \ r \ n] {19}/gm danke – Su4p

Verwandte Themen