首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用angular13允许2小数限的负值

如何使用angular13允许2小数限的负值
EN

Stack Overflow用户
提问于 2022-05-27 03:10:29
回答 1查看 179关注 0票数 0

演示 Hi我使用的是angular13,这里我想用2位小数限制输入字段。这是很好的工作,但这个输入必须允许负值以及,我尝试了多种正则模式,但没有工作。

HTML:

代码语言:javascript
复制
<form  [formGroup]="eoInfoForm">
  <div class="row">
    <div class="col">
      <div class="form-group">
        <label for="">Amount <span class="text-danger">*</span></label>
        <input type="text" class="form-control" placeholder="Amount in dolars"
            formControlName="amount" autocomplete="off" currencyInput maxDigits="9" [ngClass]="{ 'is-invalid': eoInfo.amount.dirty  && eoInfo.amount.invalid }">
      </div>
    </div>
  </div>
</form>

指令:

代码语言:javascript
复制
 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')
  }
  @Input()
  set maxDigits(maxDigits: number) {
    this.setRegex(maxDigits);
  } 

  private el: HTMLInputElement;

  constructor(
    private elementRef: ElementRef,
    private currencyPipe: CurrencyPipe
  ) {
    this.el = this.elementRef.nativeElement;
    this.setRegex();
  }

  private default = '';

  ngOnInit() {
    this.default = this.el.value;
    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, '');
    this.el.select();
  }

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

回答 1

Stack Overflow用户

发布于 2022-05-27 04:26:01

你可以使用ngx面具。

代码语言:javascript
复制
npm install --save ngx-mask

访问stackblitz:https://stackblitz.com/edit/ngx-mask-ffmmwb?file=src%2Fapp%2Fapp.component.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72400051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档