RegEx:如何删除像DOM渲染器那样的额外空格/换行符(处理)

时间:2012-01-23 20:14:52

标签: javascript html regex

我想从HTML标记中“删除”所有(有些)不必要的空格。

的OBJ: nodeValue

渲染: render

对于像这样的nodeValue,this solution效果非常好。


但是,当拥有非破坏空间 时,浏览器会以不同的方式呈现 -

Obj:nodeValue

渲染:enter image description here


我想像DOM渲染器那样“剥离”字符串。

这项工作的RegEx是什么?还有其他陷阱,我可能会切割实际上“需要”呈现的东西吗?

注意:我正在使用innerHTML,因此客户无法帮助我......

2 个答案:

答案 0 :(得分:6)

这将用一个空格替换所有两个或更多的空格:

myStr = myStr.replace(/\s{2,}/g,' ');

但是,如果您拥有<pre>标记,或者更常见的是应用了CSS white-space:pre的任何地方,这将会中断。为了有效,您需要对有问题的元素getComputedStyle(),然后仅将此转换应用于空白空间不重要的文本节点。

答案 1 :(得分:2)

/\s\s+/替换" "可以解决问题。