删除不需要的空格的最安全方法

时间:2009-06-06 10:21:20

标签: javascript regex whitespace

我有这个HTML字符串,通常有很多空格

示例:

<p>All     these words <br />
<strong>All</strong>   <em>these</em>   words
<pre>    All    these words</pre>
</p>

我需要使用JavaScript删除它们,并提出了这个regEx:

String.replace(/ {2,}/g, '');

这似乎可以替换不需要的空格,但我想保留PRE元素中的空格。

这是否可以使用正则表达式?

2 个答案:

答案 0 :(得分:6)

你不能用正则表达式做到这一点,就像那样简单。

正则表达式对于这类事情来说是一个糟糕的选择。 <pre>块可以包含其他标记,依此类推。还有使用white-space: pre属性的CSS(内联或类)?

HTML和浏览器处理白色空间就好了。这真的是你需要解决的问题吗?如果你这样做,你需要某种HTML解析器。

答案 1 :(得分:2)

使用:

String.replace(/(<pre[\s\S]*?>[\s\S]*?<\/pre>)| {2,}/ig, '$1')

在firefox 3中测试

编辑:

请在此处查看测试页:http://ashita.org/StackOverflow/replacetest.html