2012-10-24 163 views
0

取代我有一個包含很多JavaScript和正則表達式

<span style="font-size:8px;">...</span> 
<span style="font-size:14px;"> ...</span> 

一個字符串,我想全部更換字體大小值,以給定值。所以我需要一個正則表達式來替換「font-size:」和「px;」之間的所有字符

P.s.我使用Rangy JS庫

var iframe = $('iframe')[0]; 
      var sel = rangy.getIframeSelection(iframe); 
      selected_html=sel.toHtml(); 
      selected_html.replace("font-size:<some regexp>px;", "36"); 

你能建議一個合適的正則表達式嗎?

+0

字符串從哪裏來?我建議你擺脫內聯樣式,添加一個類,並在CSS中執行。 – elclanrs

+1

不要使用html的正則表達式。你已經使用了rangy,爲什麼不修改它返回的好DOM節點上的屬性而不是regexing html? –

+0

font-size \:\ dpx; – 23tux

回答

3
.replace(/(font-size:)\d+(px;)/g, "$1"+36+"$2"); 
+0

不錯,但你應該添加一些解釋! – Anirudha

+0

$ 1 ==(font-size :) && $ 2 ==(px;)nice答案。 –

+0

更好地允許一些空間。爲了保持空格的使用:'.replace(/(font-size:\ s *)\ d +(\ s * px;)/ g,「$ 1」+36 +「$ 2」);'否則:'.replace /(font-size:)\ s * \ d + \ s *(px;)/ g,「$ 1」+36 +「$ 2」);' –