1

我正在使用以下代码在印度编号系统中显示货币:

<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

请帮忙!

4

2 回答 2

1

您可以使用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));

于 2018-12-22T13:38:47.817 回答
0

Number.prototype.toLocaleString()在这里会有很大帮助。

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

console.log(convertToIndianCurrency(123456.789));

于 2018-12-22T13:49:04.090 回答