Я использую следующий код для отображения валюты в индийской системе счисления:
<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
Пожалуйста помоги!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать Intl.NumberFormat
const number = 12345678;
console.info(new Intl.NumberFormat('en-IN').format(number));Если это должна быть валюта, вы можете передать это как второй аргумент.
const number = 12345678;
console.info(new Intl.NumberFormat('en-IN', {style: 'currency', currency: 'INR'}).format(number));Или заставить два десятичных знака:
const number = 12345678;
console.info(new Intl.NumberFormat('en-IN', {minimumFractionDigits: 2}).format(number));Number.prototype.toLocaleString () будет здесь большим подспорьем.
function convertToIndianCurrency(x){
return x.toLocaleString('en-IN');
}
console.info(convertToIndianCurrency(123456.789));