2012-10-24 118 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”);' –