Nội dung bài viết
Video học lập trình mỗi ngày
Intl.NumberFormat mặc dù được hỗ trợ trong những brower hiện đại để Javascript format giá tiền nhưng nếu một lúc nào đó devjs muốn viết cho bản thân mình or cho team một chức năng tương tự thì làm như thế nào? Bài dưới đây sẽ có những phương án rất đơn giản mà hiệu quả Javascript format giá tiền.
Đọc thêm tips javascript
Tips - Math.random() in JavaScript
Tipjs - 5 cách chuyển value sang string trong javascript
Javascript format giá tiền với toFixed()
Ví dụ: 12345.67120398 trở thành 12,345.67. Chúng ta có thể làm đơn giản Kiểu tiền tệ trong JavaScript như ví dụ dưới đây.
var yourBalance = 2489.8237; //returns 2489.824 (rounds up) yourBalance.toFixed(3); //returns 2489.82 yourBalance.toFixed(2); //returns 2489.8237000 (pads the decimals) yourBalance.toFixed(7);
Định dạng tiền tệ trong JavaScript
Chúng ta có thể làm tương tự khi sử dụng replace
, như demo dưới đây.
function format1(n, currency) { return currency + n.toFixed(2).replace(/./g, function(c, i, a) { return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c; }); } function format2(n, currency) { return currency + n.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'); } var numbers = [1, 12, 123, 1234, 12345, 123456, 1234567, 12345.67]; for (var i = 0; i < numbers.length; i++) { console.log(format1(numbers[i], '£ ')); } for (var i = 0; i < numbers.length; i++) { console.log(format2(numbers[i], 'vnd ')); }
Kết qủa
Format #1: £ 1.00 £ 12.00 £ 123.00 £ 1,234.00 £ 12,345.00 £ 123,456.00 £ 1,234,567.00 £ 12,345.67 Format #2: vnd 1.00 vnd 12.00 vnd 123.00 vnd 1,234.00 vnd 12,345.00 vnd 123,456.00 vnd 1,234,567.00 vnd 12,345.67
Hàm number_format trong JavaScript
Có một chức năng ECMAScript mới hơn được cung cấp bởi Internationalization API
const formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 2 }) // "$1,000.00" formatter.format(1000); // "$10.00" formatter.format(10); // "$1,234,567,890.00" formatter.format(1234567890);
Đọc thêm tips javascript
Tips - Math.random() in JavaScript
Tipjs - 5 cách chuyển value sang string trong javascript
javascript format giá tiền
const test1 = '1234567890' const format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',') console.log(format) // 1,234,567,890
Format VND JavaScript
function formatCash(str) { return str.split('').reverse().reduce((prev, next, index) => { return ((index % 3) ? next : (next + ',')) + prev }) } console.log(formatCash('1234567890')) // 1,234,567,890