正则表达式转换货币格式

时间:2015-11-07 09:44:59

标签: javascript regex

我正在使用正则表达式将用户输入转换为货币格式, 但我不知道它是如何工作的。我正在学习正则表达式帮助我。

    return "$" + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")

我还需要负数以货币格式如何实现这一目标?

    example
        -254182=> -254,182.00

1 个答案:

答案 0 :(得分:0)

让它分开:

"$"                                       # literal $ sign
num.toFixed(2)                            # round up to 2 decimal points
replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") # places comma after every 3 digits

使用前瞻性正则表达式在每3个数字后放置逗号,该正则表达式断言前面还有1个 3个数字,最后是非数字。

示例:

var num = 1234567.8685;
var fmt = "$" + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
//=> $1,234,567.87