要实现不使用toLocaleString()或Intl.NumberFormat()的货币格式化,可以使用以下方法:
function formatCurrency(value, currency) {
const symbol = {'USD': '$', 'EUR': '€', 'GBP': '£'}[currency];
const formattedValue = value.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
return symbol + formattedValue;
}
console.log(formatCurrency(1000, 'USD')); // 输出: $1,000.00
console.log(formatCurrency(2000, 'EUR')); // 输出: €2,000.00
console.log(formatCurrency(3000, 'GBP')); // 输出: £3,000.00
这个方法使用了正则表达式来在数字的千位之间插入逗号,并在小数点后保留两位小数。然后,根据所提供的货币代码,将货币符号添加到格式化后的值之前。
function formatCurrency(value, currency) {
const symbol = {'USD': '$', 'EUR': '€', 'GBP': '£'}[currency];
const formattedValue = value.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, function(match) {
return match + ',';
});
return symbol + formattedValue;
}
console.log(formatCurrency(1000, 'USD')); // 输出: $1,000.00
console.log(formatCurrency(2000, 'EUR')); // 输出: €2,000.00
console.log(formatCurrency(3000, 'GBP')); // 输出: £3,000.00
这个方法与第一个方法非常相似,只是使用了一个回调函数来返回替换字符串,并将其与每个匹配的数字一起连接。
这些方法可以将数字格式化为货币,并根据提供的货币代码添加相应的货币符号。