Quick actions

cmd+k|ctrl+k

Navigation

Languages

JS IDR

Snippet info

Language

JavaScript

Visibility

public

Author

manxglot

Created

2020-02-20T17:08:59Z

Updated

2020-02-20T17:08:59Z

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');

// <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>
INFO