Автоформат номер в валюте динамически во входном поле - PullRequest
0 голосов
/ 08 июля 2019

У меня есть поле ввода, где, если я наберу число, оно должно быть отформатировано в валюте на основе локали.но проблема, с которой я сталкиваюсь, связана с уважением к ОАЭ (арабские эмираты).Я не смог разобрать, когда он перешел в библиотеку 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', которая является абудхаби, она не будет анализироваться, если переданное число является смесью английского и арабского

...