Как удалить десятичное значение после форматирования ввода на основе фокуса в angular8 - PullRequest
0 голосов
/ 16 апреля 2020

Я использовал валютную трубу для форматирования ввода, но я получаю .00, когда выхожу из полей ввода, но я хочу $ 1,000,000 (без десятичных знаков, включая запятые, если необходимо, и знак $), но теперь я получится так, если я наберу 1000000, и он будет отображаться как $ 1,000,000.00, но я хочу, чтобы это было $ 1,000,000.

HTML:

 <input type="text" class="form-control" placeholder="Amount in dolars"
            formControlName="amount" autocomplete="off" currencyInput maxDigits="9">

Директива:

private regexString(max?: number) {
    const maxStr = max ? `{0,${max}}` : `+`;
    return `^(\\d${maxStr}(\\.\\d{0,2})?|\\.\\d{0,2})$`
  }
  private digitRegex: RegExp;
  private setRegex(maxDigits?: number) {
    this.digitRegex = new RegExp(this.regexString(maxDigits), 'g')
  }
ngOnInit() {
    this.el.value = this.currencyPipe.transform(this.el.value, 'USD');
  }

  @HostListener("focus", ["$event.target.value"])
  onFocus(value) {
    // on focus remove currency formatting
    this.el.value = value.replace(/[^0-9.]+/g, '')
  }

  @HostListener("blur", ["$event.target.value"])
  onBlur(value) {
    // on blur, add currency formatting
    this.el.value = this.currencyPipe.transform(value, 'USD');
  }

Во время копирования и когда мы выйдем, даже в этот раз, я хочу, чтобы формат был таким, как упомянуто, но я попытался использовать символ: "1-0.0" и все, но ничего не работало.

Пожалуйста, помогите

DEMO

1 Ответ

1 голос
/ 16 апреля 2020

Демо

просто поместите это на размытие после преобразования

var lasttrim=this.el.value.substr(-2);
if(lasttrim=="00"){
      this.el.value=this.el.value.substr(0,this.el.value.length-3)
}

Ваше событие будет таким:

@HostListener("blur", ["$event.target.value"])
  onBlur(value) {
    // on blur, add currency formatting
    this.el.value = this.currencyPipe.transform(value, 'USD');
     var lasttrim=this.el.value.substr(-2);
     if(lasttrim=="00"){
         this.el.value=this.el.value.substr(0,this.el.value.length-3)
     }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...