我有帮助函数将我的钱值格式化为磅和便士:
Hello tim
给我:
formatMoney: function(10496.470000000001){
return value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,");
},
有没有办法可以准确地将其格式化为磅和便士?所以它写着,11,496.471,001,001,001
答案 0 :(得分:0)
除了前面提到的toFixed方法调用之外,要替换的第二个参数应该是" $ 1,"而不是" 1,"。此外,您转换为数字有点脆弱。我试图解决这些问题:
function convert(value){
return "£"+((Number(value)||0).toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"))+"p";
}
console.log(convert(10496.470000000001));

答案 1 :(得分:-1)
Regexp并不关心你传入的小数。你需要将你的输入转换为已经有2位小数:
return value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,");
^^^^^^^^^^
function convert(value){
return value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,");
}
console.log(convert(10496.470000000001));