现在我有这个正则表达式返回格式化数字的数字。
function formatCurrency(amount) {
var amt = ""+amount;
return amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
任何提供的号码的结果即将到期:$ 1,944.5。 但我需要在十进制后添加两位数。它应该是到期日:$ 1,944.50。请帮助我使用正确的正则表达式在小数点后添加两位数。谢谢你的帮助。
答案 0 :(得分:1)
如果你只是将数字格式化为2位小数,那么正则表达式似乎有点矫枉过正,你可以使用以下内容:
return amount.toFixed(2);
除非您有特殊原因要绝对使用正则表达式吗?
答案 1 :(得分:0)
如果你想用正则表达式添加尾随零,你可以这样做;
function formatCurrency(amount) {
var amt = ""+amount;
amt = amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
return amt.replace(/(\.\d{1})$/, "$1"+"0");
}
为了确保小数点后总是有2个数字,即使没有分数,也可以在应用正则表达式之前使用.toFixed(2)
。
function formatCurrency(amount) {
// Ensures there are 2 decimal places
var amt = parseFloat(amount).toFixed(2);
// Add commas for every block of 3 digits
return amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
答案 2 :(得分:0)
您无需使用正则表达式进行此操作。
function formatCurrency(amount) {
return parseFloat(amount).toFixed(2);
}
现在,这只适用于西方货币。