在decimal之后添加两位数字-regex jquery

在decimal之后添加两位数字-regex jquery,jquery,regex,Jquery,Regex,现在我用这个正则表达式返回带有格式化数字的数字 function formatCurrency(amount) { var amt = ""+amount; return amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); } 提供的任何数字的结果都将到期:1944.5美元。 但我需要在小数点后加上两位数,它应该是到期的:$1944.50。请帮我用正确的正则表达式在小数点后加两位数。谢谢你的帮助 如果您只是将数字格式化为小数点后2位,

现在我用这个正则表达式返回带有格式化数字的数字

function formatCurrency(amount) {
    var amt = ""+amount;
    return amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
提供的任何数字的结果都将到期:1944.5美元。
但我需要在小数点后加上两位数,它应该是到期的:$1944.50。请帮我用正确的正则表达式在小数点后加两位数。谢谢你的帮助

如果您只是将数字格式化为小数点后2位,regex似乎有些过分,您可以使用以下命令:

退货金额固定(2)


除非有特定的原因,你绝对必须使用正则表达式?

如果你想用正则表达式添加尾随的零,你可以这样做

function formatCurrency(amount) {
    var amt = ""+amount;
    amt = amt.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
    return amt.replace(/(\.\d{1})$/, "$1"+"0");
}

要确保小数点后始终有两位数,即使没有美分,也可以在应用正则表达式之前使用
.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,");
}

此操作不需要使用正则表达式

function formatCurrency(amount) {
    return parseFloat(amount).toFixed(2);
}

现在,这只适用于西方货币。

替换
(?和替换
(?可能与您的货币几乎相同。
parseFloat(可能是string)。toFixed(2)
这是可行的,但如果没有小数点,则不会添加两个零。如果句点后没有数字,请帮助我在小数点后添加两个零。例如,如果我提供1500美元,则应为1500.00美元。现在为1500美元。我已更新了答案,以向您展示如何集成“.toFixed(2)`使用你自己的正则表达式。