var s="365.00"
s.replace(/(\.\d*$)?/,"")

解决方案 »

  1.   

    var s="365.00"
    alert(s.replace(/\.\d*$/,""))
      

  2.   

    <script>
    var n = '236.58400'; // 236.584
    n = '236.00'; // 236
    n = '236.'; // 236 alert(n.replace(/0+$|\.0*$/,''));
    </script>
      

  3.   

    <script>
    var str = "0.01212300";
    alert(str.replace(/\.?0+$/igm,""));
    </script>
      

  4.   


    <script>
    var reg = /(\.0*$)|((\.\d*[1-9])0*$)/;
    var str = "100";
    alert(str.replace(reg,"$3"));str = "100.3242000";
    alert(str.replace(reg,"$3"));str = "123.000";
    alert(str.replace(reg,"$3"));</script>
      

  5.   

    刚刚理解错了
    <script>
    var n = '200, 0.500, 12.0, 365.00, 236.58400';
    var reg = /(\d+)(?=\,|$)|(.+?)\.?0+(?=\,|$)/g;
    alert(n.replace(reg,'$1$2'));
    </script>
      

  6.   

    小于1时n.replace(/^(0\.\d*[1-9])0+$/,function(s,a){return a})
      

  7.   

    n.replace(/^(0\.\d*[1-9])0*$/,function(s,a){return a})
      

  8.   

    还是有BUG,又更新了一下
    <script>
    var n = '200,300, 0.500, 12.0, 365.00, 300, 236.58400, 16800';
    var reg = /(\d+)(?=\,|$)|(\d+|\d+\.?[^0]+|)\.?0*(?=\,|$)/g;
    alert(n.replace(reg,'$1$2'));
    </script>