求js正则表达式: 
要求。比如用户输入一些不确定的数字0.500,12.0,365.00,236.58400 ,100.00,153.0400。
        我现在要去掉数据后面无效的0.如果是整数则保留整数(比如365.00  保留为356) 
通过了就马上结贴。分不多。50

解决方案 »

  1.   

    为什么要用正则表达式?
    <script>
    var a = 1.5000;
    var b = "3.00000";

    var no3 = eval(a);
    var no4 = eval(b);
    alert(no3);
    alert(no4);
    </script>
      

  2.   

    一定要正则?function f(a)
    {
       var b = parseInt(a);
       a = parseFloat(a);
       return a == b ? b : a;
    }
      

  3.   

    <script>
        var a = "1.5000";
        var b = "3.00000";
        var c = "0.00000";
        var d = "12";
        var e = "12.00200";
        var f = "12.015";
        
        var ex = /(0|([1-9][0-9]*(\.[0-9]*[1-9])?))(0*)/
        var ex = /(0|([1-9][0-9]*(\.[0-9]*[1-9])?))(\.?0+)$/
        alert(a.replace(ex, "$1"));
        alert(b.replace(ex, "$1"));    
        alert(c.replace(ex, "$1"));    
        alert(d.replace(ex, "$1"));    
        alert(e.replace(ex, "$1"));    
        alert(f.replace(ex, "$1"));    
    </script>
      

  4.   

    <script>
        var a = "1.5000";
        var b = "3.00000";
        var c = "0.00000";
        var d = "12";
        var e = "12.00200";
        var f = "12.015";
        
        var ex = /(0|([1-9][0-9]*(\.[0-9]*[1-9])?))(0*)/
        var ex = /(0|([1-9][0-9]*(\.[0-9]*[1-9])?))(\.?0+)$/ // <----------------
        alert(a.replace(ex, "$1"));
        alert(b.replace(ex, "$1"));    
        alert(c.replace(ex, "$1"));    
        alert(d.replace(ex, "$1"));    
        alert(e.replace(ex, "$1"));    
        alert(f.replace(ex, "$1"));    
    </script>
      

  5.   

    var s = "2323.1212000";
    s=s.replace(/^((.*)\..*?)0*$/,"$1").replace(/^(.*)\.$/,"$1");
    alert(s);
      

  6.   

    function f(a)
    {
       var b = parseInt(a);
       a = parseFloat(a);
       return a == b ? b : a;
    }
      

  7.   


    <script language="JavaScript">
    var str="-1330.20500";
    var reg=/(\-)?(\d)*\.[0-9]*[1-9]|(\-)?(\d)*[^\.](\d)*/ig
    var arr = str.match(reg);
    alert(arr[0]);
    </script>
      

  8.   

    搞定,结贴吧0.500, 12.0, 365.00, 236.58400, 100.00, 153.0400, 3.00
    <SCRIPT>
    var str = '0.500, 12.0, 365.00, 236.58400, 100.00, 153.0400, 3.00';
    var reg = /(\d+)\.0+(?=\b)|(\d+\.\d+?)0+(?=\b)/g;
    str = str.replace(reg, '$1$2');
    alert(str); //0.5, 12, 365, 236.584, 100, 153.04, 3
    </SCRIPT>
      

  9.   


    var str = "12.0";
    str = str.replace( /\.?0*$/g,"");
    var val = eval(str);
    alert(val);
      

  10.   

       var b = parseInt(a);
       a = parseFloat(a);
       return a == b ? b : a;