2012-01-23 15 views
2

我想從HTML標記中「去除」所有(有些)不必要的空格。正則表達式:如何刪除多餘的空白/換行符像DOM渲染器一樣( 處理)

的OBJ: nodeValue

渲染: render

對於像這樣的的nodeValue,this solution工作得很好。


但是,如果我們知道瀏覽器具有非空白區域 ,則呈現方式會有所不同。

的OBJ:nodeValue

渲染:enter image description here


我想 「脫光」 一樣,DOM渲染器的字符串。

作業的RegEx是什麼?是否還有其他陷阱,我可能會削減實際「需要」渲染的東西?

注:我操作上innerHTML,所以客戶端不能幫我...

+1

Do ** NOT **使用正則表達式來操作HTML。你最終會得到一個廢棄的文件。使用[HTMLTidy](http://tidy.sourceforge.net/)這樣的事情,並閱讀[this](http://stackoverflow.com/a/1732454/118068)爲什麼正則表達式+ html = BAD –

+1

不能容納。 – RedFilter

+0

@ MarcB我知道,我會碰到可能最有名的所以線程某時:)別擔心,我知道我在做什麼... –

回答

2

更換/\s\s+/" "會做的伎倆。

+1

吃  ... –

6

這將替換所有兩或-多個空格用一個空格:

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

然而,這將打破任何地方,你有一個<pre>標籤,或者更一般地任何地方,CSS white-space:pre應用。爲了有效,你需要getComputedStyle()上的問題的元素,然後只應用這種轉換的文本節點的空白不重要。

+1

吃  ... –

+3

@AronWoost什麼?不,它不是,如果你正在使用標記。 – Phrogz

相關問題