如有数字 1000 ,888000等,正则怎么把它转换成   1,000,888,000 这样显示的货币格式?

解决方案 »

  1.   

    .replace(/([0-9])(?=([0-9]{3})+$)/g,'$1,');
      

  2.   

    <script type="text/javascript">
    // 方法1:
    var num = 1000;
    // 不过最后有两位小数
    alert(num.toLocaleString()) // 1,000.00// 方法2:
    function formatNumber(str) {   
        if(str.length <= 3){   
            return str;   
        } else {   
            return formatNumber(str.substring(0,str.length-3))+','+str.substring(str.length-3);   
        }   
    }   alert(formatNumber(num + '')); // 1,000
    </script>
      

  3.   

    .. 貌似有点问题,如果遇到小数点方法1可以,方法2就不行了,1楼的也一样,如var num = 19980.23;
      

  4.   

    .replace(/\d+?(?=(?:\d{3})+$)/img, "$&,");
    试试吧;
      

  5.   

    .replace(/([0-9])(?=([0-9]{3})+\.|$)/g,'$1,')
      

  6.   

    上面的方法修改了下
    function formatNumber(str) {
    var baseLen = 3;
    if(str.indexOf('.') > -1) {
    baseLen += str.length - str.indexOf('.');
    }
    if(str.length <= baseLen){   
    return str;   
    } else {   
    return formatNumber(str.substring(0,str.length-baseLen))+','+str.substring(str.length-baseLen);   


    }
    alert(formatNumber('0')); // 11
    alert(formatNumber('11')); // 11
    alert(formatNumber('100')); // 100
    alert(formatNumber('0.00001')); // 0.00001
    alert(formatNumber('1000')); // 1,000
    alert(formatNumber('123456789')); // 123,456,789
    alert(formatNumber('123456789.00')); // 123,456,789.00