Bismillaahirrohmaanirrohiim…
Berikut ini cara format angka menggunakan javascript, misalkan 1000 menjadi 1.000 atau 1500000 menjadi 1.500.000
– Cara Standar
function formatAngka(angka) {
return angka.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
// Contoh penggunaan
console.log(formatAngka(1000)); // Output: 1.000
console.log(formatAngka(12000000)); // Output: 12.000.000
– format standar yang dapat menangani desimal
function formatAngka(angka) {
// Handle angka desimal
if (typeof angka !== 'number') {
angka = parseFloat(angka);
}
// Handle NaN
if (isNaN(angka)) {
return '0';
}
// Pisahkan bagian desimal jika ada
var parts = angka.toString().split('.');
var bilanganBulat = parts[0];
var bilanganDesimal = parts.length > 1 ? ',' + parts[1] : '';
// Format bilangan bulat dengan titik
var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
return formatted + bilanganDesimal;
}
// Contoh penggunaan
console.log(formatAngka(1000)); // 1.000
console.log(formatAngka(12000000)); // 12.000.000
console.log(formatAngka(1234567.89)); // 1.234.567,89
console.log(formatAngka('500000')); // 500.000
– dengan parameter pemisah ribuan dan desimal
function formatAngka(angka, pemisahRibuan = '.', pemisahDesimal = ',') {
// Konversi ke number
angka = parseFloat(angka);
if (isNaN(angka)) {
return '0';
}
// Format angka dengan 2 digit desimal
var parts = angka.toFixed(2).split('.');
var bilanganBulat = parts[0];
var bilanganDesimal = parts[1] ? pemisahDesimal + parts[1] : '';
// Format ribuan
var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, pemisahRibuan);
return formatted + bilanganDesimal;
}
// Contoh penggunaan
console.log(formatAngka(1000)); // 1.000,00
console.log(formatAngka(12000000)); // 12.000.000,00
console.log(formatAngka(1234567.89)); // 1.234.567,89
– untuk format saat input secara realtime
// Format input angka secara real-time
function formatInputAngka(inputElement) {
inputElement.addEventListener('input', function(e) {
// Hapus semua karakter non-digit kecuali koma
var value = this.value.replace(/[^\d,]/g, '');
// Pisahkan bagian desimal
var parts = value.split(',');
var bilanganBulat = parts[0];
var bilanganDesimal = parts.length > 1 ? ',' + parts[1] : '';
// Format bilangan bulat
var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
this.value = formatted + bilanganDesimal;
});
}
// Contoh penggunaan
// formatInputAngka(document.getElementById('inputHarga'));
– fungsi reverse, dari format menjadi angka kembali
function unformatAngka(formattedString) {
// Hapus semua titik dan ganti koma dengan titik untuk desimal
var unformatted = formattedString.replace(/\./g, '').replace(/,/g, '.');
return parseFloat(unformatted);
}
// Contoh penggunaan
console.log(unformatAngka('1.000')); // 1000
console.log(unformatAngka('12.000.000')); // 12000000
console.log(unformatAngka('1.234.567,89')); // 1234567.89
– contoh penggunaan dalam HTML
<input type="text" id="inputHarga" onblur="formatInput(this)">
<span id="displayHarga"></span>
<script>
function formatInput(input) {
var value = input.value.replace(/\./g, '');
if (!isNaN(value)) {
input.value = formatAngka(parseFloat(value));
document.getElementById('displayHarga').textContent = formatAngka(parseFloat(value));
}
}
</script>
Demikian semoga bermanfaat