正则表达式从每行开始删除空格

时间:2016-05-10 09:00:27

标签: regex highlightjs

我使用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,''));

它对于字符串的第一行工作正常,但我想在每一行都这样做 - &gt; 从每行开始删除每24个第一个空格。

1 个答案:

答案 0 :(得分:1)

两件事:

  • \s也会匹配换行符,因此您需要[^\S\r\n]来匹配任何水平空间
  • /m修饰符需要^匹配行的开头,而不是整个字符串。

由于我在上面的示例中只计算了19个空格,因此这是一个正常的正则表达式:

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

请参阅regex demo