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

Aro*_*ost 2 html javascript regex

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

OBJ: 的nodeValue

渲染: 给予

对于像这样的nodeValue,此解决方案非常有效.


但是,当具有非破坏性空间时 ,浏览器呈现 - 正如我们所知 - 不同.

OBJ: 的nodeValue

渲染: 在此输入图像描述


我想像DOM渲染器一样"剥离"字符串.

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

注意:我正在操作innerHTML,所以客户端无法帮助我......

Phr*_*ogz 6

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

myStr = myStr.replace(/\s{2,}/g,' ');
Run Code Online (Sandbox Code Playgroud)

但是,这会破坏您拥有<pre>标记的任何位置,或者更常见的white-space:pre是应用CSS的任何位置.为了有效,您需要getComputedStyle()对有问题的元素进行操作,然后仅将此转换应用于空白空间不重要的文本节点.

  • @AronWoost什么?不,它没有,如果您正在使用标记,则不会. (3认同)