IDR

Indonesia Dolar Rupiah.

by Anov Siradj

HTML

<pre><b>Ingat!</b> di javascript/mysql/php pemisah desimal menggunakan <b>titik</b>.
Saya belum bisa implementasi di input langsung,
yaitu real-time ketika diketik.
v1. - konversi dengan manual.
    - bisa menggunakan koma.
v2. - konversi dengan fungsi build-in browser,
      dimana, belum semua browser didukung.
    - belum bisa pakai koma.
</pre>
<input id="manl" value="0"/>&nbsp;<span></span>
<br/>
<input id="auto" value="0"/>&nbsp;<span></span>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

CSS

/*
inspirasi:
https://gist.github.com/faisalman/845309#file-convert-rupiah-js

referensi:
http://stackoverflow.com/a/23452017
http://stackoverflow.com/a/1431113
http://stackoverflow.com/a/149099

baru tahu, kenapa 'Rp' digabung:
http://uangindonesia.com/cara-menulis-mata-uang-rupiah-rp-benar/
*/

JavaScript

String.prototype.toIDR = function() {
	var batas_akhir = this.lastIndexOf(',');
  if(batas_akhir < 0) {
  	batas_akhir = this.lastIndexOf('.');
    if(batas_akhir < 0) batas_akhir = this.length;
  }
	var n_angka = Number(this.substring(0, batas_akhir).replace(/[^0-9]/g,'')).
  	toLocaleString().replace(/\./g, '.').replace(/\,/g, '.');
	var n_des = Number('0.' + this.substring(batas_akhir + 1).replace(/[^0-9]/g,'')).
  	toFixed(2).toString().substr(-2);
  return 'Rp'+ n_angka + ','+ n_des;
}

String.prototype.localIDR = function() {
	return Number(this).
  	toLocaleString('id-ID', {
    	style: 'currency',
      currency: 'IDR',
      minimumFractionDigits: 2
    });
}

$('#manl').on('keyup change', function() {
	$(this).next().text(this.value.toIDR());
}).trigger('keyup');

$('#auto').on('keyup change', function() {
	$(this).next().text(this.value.localIDR());
}).trigger('keyup');