У меня есть поле ввода, где, если я наберу число, оно должно быть отформатировано в валюте на основе локали.но проблема, с которой я сталкиваюсь, связана с уважением к ОАЭ (арабские эмираты).Я не смог разобрать, когда он перешел в библиотеку Intl.numberformat.это только форматирование недавно введенной цифры.Пожалуйста, помогите мне в этом.
_getFormattedCurrency(text) {
let formattedValue;
if (text.includes(this.decimalSeparator)) {
if (!this.isDecimalPresent) { this.isDecimalPresent = true;
// regex to Find a non-digit character globally and replace with ''
formattedValue = text.replace(/\D/g, '');
return formattedValue !== "" ?
this.currencyPrefix + new Intl.NumberFormat(this.locale).format(formattedValue) + this.decimalSeparator
: this.currencyPrefix;
}
if (text.match(this.regexForDecimalSeparator).length > 1) {
return text.substring(0, text.length - 1).replace(/[a-zA-Z]/g, '');
}
// remove group separator after decimal along with any alphabets
if(text.substring(text.indexOf(this.decimalSeparator)+1).includes(',')){
return text.substring(0, text.length - 1).replace(/[a-zA-Z]/g, '');
}
return text.replace(/[a-zA-Z]/g, '');
}
this.isDecimalPresent = false;
formattedValue = text.replace(/\D/g, '');
return formattedValue !== "" ? this.currencyPrefix + new Intl.NumberFormat(this.locale).format(formattedValue)
: this.currencyPrefix;
}
Этот код выше дает мне форматированную валюту по отношению к локали.но когда я использую локаль как 'ar-AE' с валютой 'AED', которая является абудхаби, она не будет анализироваться, если переданное число является смесью английского и арабского