我有这个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元素中的空格。
这是否可以使用正则表达式?
答案 0 :(得分:6)
你不能用正则表达式做到这一点,就像那样简单。
正则表达式对于这类事情来说是一个糟糕的选择。 <pre>
块可以包含其他标记,依此类推。还有使用white-space: pre
属性的CSS(内联或类)?
HTML和浏览器处理白色空间就好了。这真的是你需要解决的问题吗?如果你这样做,你需要某种HTML解析器。
答案 1 :(得分:2)
使用:
String.replace(/(<pre[\s\S]*?>[\s\S]*?<\/pre>)| {2,}/ig, '$1')
在firefox 3中测试
编辑: