我想用JavaScript格式化价格.
我想要一个函数,它接受一个float参数并返回如下string格式:
"$ 2,500.00"
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我有一个向数字添加逗号的功能:
function commafy( num ) {
num.toString().replace( /\B(?=(?:\d{3})+)$/g, "," );
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不太喜欢小数.鉴于以下用法示例,扩展我的功能的最佳方法是什么?
commafy( "123" ) // "123"
commafy( "1234" ) // "1234"
// Don't add commas until 5 integer digits
commafy( "12345" ) // "12,345"
commafy( "1234567" ) // "1,234,567"
commafy( "12345.2" ) // "12,345.2"
commafy( "12345.6789" ) // "12,345.6789"
// Again, nothing until 5
commafy( ".123456" ) // ".123 456"
// Group with spaces (no leading digit)
commafy( "12345.6789012345678" ) // "12,345.678 901 234 567 8"
Run Code Online (Sandbox Code Playgroud)
大概最简单的方法是首先分割小数点(如果有的话).哪里最好去哪里?