Saya ingin menghapus koma dari string dan menghitung jumlah tersebut menggunakan JavaScript.
Misalnya, saya memiliki dua nilai itu:
- 100.000,00
- 500.000,00
Sekarang saya ingin menghapus koma dari string itu dan ingin total jumlahnya.
javascript
Kanak Vaghela
sumber
sumber
replace
danparseFloat
. berikut adalah kasus uji cepat: jsfiddle.net/TtYpHJawaban terkait, tetapi jika Anda ingin menjalankan pembersihan pengguna yang memasukkan nilai ke dalam formulir, inilah yang dapat Anda lakukan:
const numFormatter = new Intl.NumberFormat('en-US', { style: "decimal", maximumFractionDigits: 2 }) // Good Inputs parseFloat(numFormatter.format('1234').replace(/,/g,"")) // 1234 parseFloat(numFormatter.format('123').replace(/,/g,"")) // 123 // 3rd decimal place rounds to nearest parseFloat(numFormatter.format('1234.233').replace(/,/g,"")); // 1234.23 parseFloat(numFormatter.format('1234.239').replace(/,/g,"")); // 1234.24 // Bad Inputs parseFloat(numFormatter.format('1234.233a').replace(/,/g,"")); // NaN parseFloat(numFormatter.format('$1234.23').replace(/,/g,"")); // NaN // Edge Cases parseFloat(numFormatter.format(true).replace(/,/g,"")) // 1 parseFloat(numFormatter.format(false).replace(/,/g,"")) // 0 parseFloat(numFormatter.format(NaN).replace(/,/g,"")) // NaN
Gunakan tanggal internasional lokal melalui
format
. Ini membersihkan semua masukan yang buruk, jika ada yang mengembalikan stringNaN
yang dapat Anda periksa. Saat ini tidak ada cara untuk menghapus koma sebagai bagian dari lokal (mulai 10/12/19) , jadi Anda dapat menggunakan perintah regex untuk menghapus koma menggunakanreplace
.ParseFloat
mengubah definisi jenis ini dari string menjadi angkaJika Anda menggunakan React, seperti inilah fungsi perhitungan Anda:
updateCalculationInput = (e) => { let value; value = numFormatter.format(e.target.value); // 123,456.78 - 3rd decimal rounds to nearest number as expected if(value === 'NaN') return; // locale returns string of NaN if fail value = value.replace(/,/g, ""); // remove commas value = parseFloat(value); // now parse to float should always be clean input // Do the actual math and setState calls here }
sumber