正则表达式从每一行开始删除空格
Regex delete spaces from every line start
我使用 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 个第一个空格。
两件事:
\s
也匹配换行符,所以你需要一个 [^\S\r\n]
来匹配任何 horizontal space
- 需要
/m
修饰符才能使 ^
匹配行的开头,而不是整个字符串的开头。
因为我在上面的示例中只计算了 19 spaces,这里是一个有效的正则表达式:
/^[^\S\r\n]{19,}/gm
我使用 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 个第一个空格。
两件事:
\s
也匹配换行符,所以你需要一个[^\S\r\n]
来匹配任何 horizontal space- 需要
/m
修饰符才能使^
匹配行的开头,而不是整个字符串的开头。
因为我在上面的示例中只计算了 19 spaces,这里是一个有效的正则表达式:
/^[^\S\r\n]{19,}/gm