first commit + add fe component vue accone
This commit is contained in:
39
libs/formatters.js
Normal file
39
libs/formatters.js
Normal file
@@ -0,0 +1,39 @@
|
||||
// Buat sebagai variabel global
|
||||
window.formatNumber = function(value) {
|
||||
if (!value && value !== 0) return '';
|
||||
|
||||
// Split nilai menjadi bagian integer dan desimal (jika ada)
|
||||
const parts = value.toString().split('.');
|
||||
const integerPart = parts[0];
|
||||
const decimalPart = parts.length > 1 ? parts[1].substring(0, 3) : '';
|
||||
|
||||
// Format bagian integer dengan separator titik ribuan
|
||||
const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||
|
||||
// Gabungkan kembali dengan bagian desimal (jika ada)
|
||||
return decimalPart ? `${formattedInteger},${decimalPart}` : formattedInteger;
|
||||
};
|
||||
|
||||
window.parseNumberInput = function(value) {
|
||||
if (value === undefined || value === null) return '';
|
||||
|
||||
// Validasi input: hanya menerima angka, titik, dan koma
|
||||
// Periksa apakah ada lebih dari satu koma, jika ya, ambil yang pertama
|
||||
let cleanValue = value.toString();
|
||||
|
||||
// Jika ada koma, pastikan tidak ada lebih dari 3 digit setelahnya
|
||||
if (cleanValue.includes(',')) {
|
||||
const parts = cleanValue.split(',');
|
||||
// Bagian integer (sebelum koma)
|
||||
const integerPart = parts[0].replace(/\./g, '');
|
||||
// Bagian desimal (setelah koma), maksimal 3 digit
|
||||
const decimalPart = parts[1].substring(0, 3);
|
||||
// Gabungkan kembali dengan titik untuk JavaScript
|
||||
cleanValue = integerPart + '.' + decimalPart;
|
||||
} else {
|
||||
// Jika tidak ada koma, cukup hapus semua titik
|
||||
cleanValue = cleanValue.replace(/\./g, '');
|
||||
}
|
||||
|
||||
return cleanValue;
|
||||
};
|
||||
Reference in New Issue
Block a user