1

我使用 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 个第一个空格。

4

1 回答 1

1

两件事情:

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

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

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

查看正则表达式演示

于 2016-05-10T09:45:17.093 回答