我正在使用正则表达式将用户输入转换为货币格式, 但我不知道它是如何工作的。我正在学习正则表达式帮助我。
return "$" + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
我还需要负数以货币格式如何实现这一目标?
example
-254182=> -254,182.00
答案 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