使用常规exp对货币进行四舍五入

时间:2018-07-25 21:29:00

标签: javascript regex rounding currency

我有多种货币输入,即$ 1,869.96。我需要将货币整数取整为1870美元,没有小数位。

我使用的正则表达式是

"$"+ a.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); 

任何人都可以帮助我修改现有值以将值取整为整数而没有小数位。谢谢。

1 个答案:

答案 0 :(得分:1)

尝试一下:

    function formatVal(a){ 
    var c = '';
    if(a.toString().indexOf('$') !== -1){
        a = Math.round(Number(a.toString().replace(/[^0-9\.-]+/g,"")));
        if (isNaN(a)){ 
            c=a;
        }else { 
            c ="$"+a.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, '$&,');
            if(c == '$0'){ c = "";}
        } 
    }
    return c; 
}
    
console.log(formatVal('$1,869.96'));
console.log(formatVal('$1,869'));
console.log(formatVal('sssss'));
console.log(formatVal(42));