Saya memiliki kotak teks yang akan memiliki string mata uang di dalamnya yang kemudian saya perlu mengkonversi string itu menjadi ganda untuk melakukan beberapa operasi di atasnya.
"$1,100.00"
→ 1100.00
Ini perlu terjadi di semua sisi klien. Saya tidak punya pilihan selain meninggalkan string mata uang sebagai string mata uang sebagai input tetapi perlu melemparkan / mengubahnya menjadi ganda untuk memungkinkan beberapa operasi matematika.
javascript
jquery
Bobby Borszich
sumber
sumber
.00
jejak. Representasi mata uang yang valid seperti "$ 1100" dan "$ 1100." akan berkurang dua kali lipat.accounting.js adalah cara untuk pergi. Saya menggunakannya di sebuah proyek dan memiliki pengalaman yang sangat bagus menggunakannya.
Anda dapat menemukannya di GitHub
sumber
Gunakan regex untuk menghapus formating (dolar dan koma), dan gunakan parseFloat untuk mengkonversi string ke angka floating point. `
sumber
Saya tahu ini adalah pertanyaan lama tetapi ingin memberikan opsi tambahan.
Globalisasi jQuery memberikan kemampuan untuk mem-parsing format spesifik budaya ke float.
https://github.com/jquery/globalize
Diberikan string "$ 13.042,00", dan Globalisasi disetel ke en-US:
Anda dapat mem-parsing nilai float seperti:
Ini akan memberi Anda:
Dan memungkinkan Anda untuk bekerja dengan budaya lain.
sumber
Saya tahu ini adalah pertanyaan lama, tetapi jawaban CMS tampaknya memiliki satu kekurangan kecil: itu hanya berfungsi jika format mata uang menggunakan "." sebagai pemisah desimal. Misalnya, jika Anda perlu bekerja dengan rubel Rusia, string akan terlihat seperti ini: "1 000,00 gosok."
Solusi saya jauh kurang elegan daripada CMS, tetapi harus melakukan trik.
Asumsi:
Regexp bahkan dapat menangani sesuatu seperti "1.999 dolar dan 99 sen", meskipun itu bukan fitur yang dimaksudkan dan tidak boleh diandalkan.
Semoga ini bisa membantu seseorang.
sumber
Contoh ini berjalan ok
http://jsbin.com/ecAviVOV/2/edit
sumber
// "10.000.500,61 TL" price_to_number => 10000500.61
// "10000500.62" number_to_price => 10.000.500,62
JS FIDDLE: https://jsfiddle.net/Limitlessisa/oxhgd32c/
sumber
Saya tahu Anda telah menemukan solusi untuk pertanyaan Anda, saya hanya ingin merekomendasikan bahwa mungkin Anda melihat plugin jQuery berikut yang lebih luas untuk Format Angka Internasional:
Formatter Angka Internasional
sumber
Ini adalah fungsi saya. Bekerja dengan semua mata uang ..
Penggunaan:
toFloat("$1,100.00")
atautoFloat("1,100.00$")
sumber
Anda bisa mencoba ini
sumber
output adalah: Rs. 39.00
sumber
Saya telah menguji tiga simbol mata uang di atas. Anda juga dapat melakukannya untuk orang lain.
Ekspresi reguler di atas akan menghapus semua yang bukan digit atau titik. Jadi Anda bisa mendapatkan string tanpa simbol mata uang tetapi dalam kasus "Fr. 150.00" jika Anda menghibur untuk output maka Anda akan mendapatkan harga
yang salah sehingga Anda memeriksa indeks "." kemudian pisahkan itu dan dapatkan hasil yang tepat.
sumber
sumber
sumber
Fungsi ini harus berfungsi di mana saja pengaturan lokal dan mata uang:
Ini mengasumsikan Anda tahu karakter titik desimal (dalam kasus saya lokal diatur dari PHP, jadi saya mengerti
<?php echo cms_function_to_get_decimal_point(); ?>
).sumber
Ini bekerja untuk saya dan mencakup sebagian besar kasus tepi :)
sumber