请问,怎么用正则表达式把var s="<SPAN style="COLOR: #ff0000">268.28</SPAN>";中抽取"三位整数外加两位小数"的数字268.88出来? 谢谢大家.

解决方案 »

  1.   


    var s="<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>";
    var re = /<span\s+.+?>(\d+\.\d+)<\/span>/ig;
    while((n=re.exec(s))!=null){
       alert(n[1]);
    }
      

  2.   

    嘿嘿这样简单点  :)
    var str='<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>';
    var a=str.replace(/<[^\>]*>/g,"");
    alert(a);
      

  3.   

    修改一点var str='<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>';
    var a=str.replace(/<[^>]*>/g,"");
    alert(a);
      

  4.   

    如果需求就是这样的话 我建议使用3楼的答案
    如果你的要求是查找一段HTML中XXX.XX的数字的话
    可以使用var reg = /(?:^|\D)(\d{3}\.\d{2})(?=[\D$])/g;
    var matchs = reg.exec(str);
    alert(matchs[1])
      

  5.   

    lz 题目中的字符串引号嵌套有问题哦……
    另外好像无论如何也提取不出 268.88 来…… 3楼采取的是剥离HTML标签代码的方式
    4楼取标准的"三位整数外加两位小数"如果只是取带两位小数的数字的话,/\d*\.\d{2}/就可以了 var s='<SPAN style="COLOR: #ff0000">268.28</SPAN><SPAN style="COLOR: #ff0000">1268.88</SPAN>';
    var reg=/\d*\.\d{2}/g;
    alert(s.match(reg)[0]);
    alert(s.match(reg)[1]);
      

  6.   

    var s="<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>";
    s.match(/<SPAN\s*[^>]+>([^<]+)<\/SPAN>/gi);
    alert(RegExp.$1);