我想从HTML标记中“删除”所有(有些)不必要的空格。
的OBJ:
渲染:
对于像这样的nodeValue,this solution效果非常好。
但是,当拥有非破坏空间
时,浏览器会以不同的方式呈现 -
Obj:
渲染:
我想像DOM渲染器那样“剥离”字符串。
这项工作的RegEx是什么?还有其他陷阱,我可能会切割实际上“需要”呈现的东西吗?
注意:我正在使用innerHTML
,因此客户无法帮助我......
答案 0 :(得分:6)
这将用一个空格替换所有两个或更多的空格:
myStr = myStr.replace(/\s{2,}/g,' ');
但是,如果您拥有<pre>
标记,或者更常见的是应用了CSS white-space:pre
的任何地方,这将会中断。为了有效,您需要对有问题的元素getComputedStyle()
,然后仅将此转换应用于空白空间不重要的文本节点。
答案 1 :(得分:2)
用/\s\s+/
替换" "
可以解决问题。