除去换行符和2个以上的空格/制表符,除非在特定标签之间

时间:2018-11-05 23:01:06

标签: javascript node.js regex

我正在尝试获取HTML字符串并删除所有空白,除非需要使用空白的特定标记(例如(但不限于)pretextarea)要删除。

我有以下正则表达式,然后用空字符串替换所有匹配项。它将删除标记内的所有空格(属性之间,类之间等)之外的所有空格:

// Remove 2+ white spaces
string.replace(/(\s\s+)(?![^\<]*\>)/g, ' ')

// Remove new lines
string.replace(/\n(?![^\<]*\>)/g, '')

当前输出:

<div><span>Hi</span> <span>Hello</span></div> <pre>test text</pre>

预期的输出(> <之间的空格消失了,并且换行符仍保留在pre内):

<div><span>Hi</span><span>Hello</span></div><pre>
  test text
</pre>

我能以某种方式将两者结合吗?

我想要什么:

  1. 用1个空格替换2个以上的空格,除非在特定标签内
  2. 用空字符串替换新行,除非在特定标签内

基本上我想缩小HTML字符串

0 个答案:

没有答案