var a = 'font:10px bold;font:italic 40% arial;font:1.5em arial;';
alert(a.replace(/(\d+)(\.\d+)?(px|pt|em|%)(?=([\s;]|$))/gi,'100px;'))

解决方案 »

  1.   


    这里还有一种情况,font:italic 10px/20px arial;这样的话10px就是字体大小,20px是Line高度,这个替换的是20px,也就是line高度,这样就不对了。可能有解决方法吗
      

  2.   

    var fonttext = 'font:italic {size}/20px arial;'
    alert(fonttext.replace('{size}' , '100px'));我举得这样比较好 明确可读 并且 fonttext是可配置的
      

  3.   


    {size}这是个什么意思??没看懂,
    我的意思是italic 10px/20px arial这个是从某个canvas里取出来的。取出来后更改10px为指定大小后再更新回canvas
      

  4.   

    context.font = "italic 12px/20px arial";
    context.font = context.font.replace(/\d+(\.\d+)?(px|pt|em|%)/i,"17px");//替换字体大小
    context.font = context.font.replace(/(\/\s*)\d+(\.\d+)?(px|pt|em|%)/i,"$1"+"27px");//替换Line高度
    alert(context.font);
      

  5.   


    YES。。这下好像对了。。太感谢了。。也感谢楼上各位