RegEx用于删除字符串中的空格

时间:2019-05-29 00:02:37

标签: javascript regex dom regex-lookarounds regex-group

试图制作一个非常简单的HTML缩小器,仅消除标记之间的空白吗?

我认为最好的方法是使用JavaScript正则表达式?但永远无法找出正确的方法。

<p>leave white spaces</p> <p>leave white spaces</p>

缩小后:

 <p>leave white space</p><p>leave white space</p>

试图在>这里定位<之间的空间

2 个答案:

答案 0 :(得分:5)

您可以考虑改用DOMParser,然后remove-设置所有修剪后为空的文本节点:

const input = `<p>leave white spaces</p> <p>leave white spaces</p>`;
const doc = new DOMParser().parseFromString(input, 'text/html');
[...doc.body.childNodes].forEach((node) => {
  if (node.nodeType === 3 && node.textContent.trim() === '') {
    node.remove();
  }
});
console.log(doc.body.innerHTML);

答案 1 :(得分:0)

如果在这里我们希望或必须使用正则表达式,则可以在open和close标记之间添加一个非捕获组... res.redirect('/path/to/somewhere') ,并使用以下表达式将其替换为空字符串:

(?:\s+)

我们可以在此表达式上添加其他边界,但是,如果我们的输入与问题中的示例相似,就足够了。

例如,对于<\/[a-z]+>(?:\s+)<[a-z]+> 标签,我们将扩展字符列表:

h1

对于大写实例,如果有的话,我们将添加一个<\/[a-z0-9]+>(?:\s+)<[a-z0-9]+> 标志。

测试

i

RegEx

如果不需要此表达式,可以在regex101.com中对其进行修改/更改。

RegEx电路

jex.im可视化正则表达式:

enter image description here