Директива Angular 5+, ограничивающая пользователя, вводить только числа с плавающей запятой / целые числа - PullRequest
0 голосов
/ 28 сентября 2018

Я пытался реализовать директиву Angular 5+, которая ограничивает пользователя вводом только чисел с плавающей запятой / целых чисел.

Ниже приведена реализация с использованием маски ввода , котораяЯ получил от stackoverflow, но он не работает должным образом, так как он позволяет пользователю вводить два десятичных знака, что неправильно. Ссылка

import {Directive, ElementRef, Input} from '@angular/core';
import * as Inputmask from 'inputmask';


@Directive({
  selector: '[app-restrict-input]',
})
export class RestrictInputDirective {

  // map of some of the regex strings I'm using (TODO: add your own)
  private regexMap = {
    integer: '^[0-9]*$',
    float: '^[+-]?([0-9]*[.])?[0-9]+$',
    words: '([A-z]*\\s)*',
    point25: '^\-?[0-9]*(?:\\.25|\\.50|\\.75|)$'
  };

  constructor(private el: ElementRef) {}

  @Input('app-restrict-input')
  public set defineInputType(type: string) {
    Inputmask({regex: this.regexMap[type], placeholder: ''})
      .mask(this.el.nativeElement);
  }

}

Я пытался реализовать это в течение недели, но безрезультатно.Любая помощь будет оценена!

...