Автоформат номер индийской валюты - PullRequest
0 голосов
/ 22 декабря 2018

Я использую следующий код для отображения валюты в индийской системе нумерации:

<script type="text/javascript">
   function format(obj) {
      var formatted = obj.value.replace(/\D/g, '');
      obj.value = formatted.replace(/(\d+)(\d{2})/g,'$1.$2');
   }
</script>

<input type="number" onkeyup="format(this)">

Вывод, который я получаю: 123456.78

Вывод, который я хочу: 1,23,45,678.00

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Number.prototype.toLocaleString () очень поможет здесь.

function convertToIndianCurrency(x){
  return x.toLocaleString('en-IN');
}

console.log(convertToIndianCurrency(123456.789));
0 голосов
/ 22 декабря 2018

Вы можете использовать Intl.NumberFormat

const number = 12345678;
console.log(new Intl.NumberFormat('en-IN').format(number));

Если это валюта, вы можете передать ее в качестве второго аргумента

const number = 12345678;
console.log(new Intl.NumberFormat('en-IN', {style: 'currency', currency: 'INR'}).format(number));

Или ввести два десятичных знака:

const number = 12345678;
console.log(new Intl.NumberFormat('en-IN', {minimumFractionDigits: 2}).format(number));
...