ローカルフォーマットに基づいて数値を再フォーマットする必要があります。これを行うには、Number.toLocaleString("LOCAL")
関数を使用します。イランでは、大多数の人々は_,
_を数千の区切り文字として使用することを好みますが、Number.toLocaleString("fa-IR")
は_٬
_を使用します(技術的には、がtrueです)。
次のコードを使用して文字を置き換えることができますが、overrideNumber.toLocaleString("fa-IR")
の機能を使用する方法はありますか?
_function formatNumber(number) {
let string = number.toLocaleString('fa-IR'); // ۱۲٬۳۴۵٫۶۷۹
number = number.replace(/\٬/g, ",");
return string;
}
formatNumber(12345.6789); // the result: ۱۲,۳۴۵٫۶۷۹
_
PS私はここに同様のコードスニペットがたくさんあることを知っていますが、(可能であれば)組み込み関数をオーバーライドしたいと思います。
Number
のプロトタイプを変更してよければ、そうです。他のライブラリなどを混乱させる可能性があるため、組み込みクラスのプロトタイプを変更しないように警告されます。
とにかく鍛造:
const old = Number.prototype.toLocaleString;
Number.prototype.toLocaleString = function(locale)
{
let result = old.call(this, locale);
if(locale === 'fa-IR')
{
result = result.replace(/\٬/g, ",");
}
return result;
}