Как ограничить специальные символы и буквы для поля ввода в угловых 5 - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь добавить шаблон ограничения ввода в Angular 5 в поле ввода, чтобы пользователи могли вводить только следующее (1234567890 -.)

<div class="input-group">
<input type="text" id="btn" (keyup.enter)="Submit(Car.value);" class="form-control" name="Car" #Car required placeholder="Car name" [value]="CarSearch" [pattern]="nameFormat"> </div>

А в компоненте: я объявляю свой шаблон (неправильный шаблон регулярных выражений):

nameFormat = "[a-zA-Z\s]+$";

затем в конструкторе:

this.name = new FormControl("", Validators.compose([Validators.required, Validators.pattern(this.nameFormat)]));

Как мне получить правильный шаблон регулярных выражений и ограничить пользовательский ввод, текущее решение не работает ... спасибо за предложения и идеи.

1 Ответ

0 голосов
/ 12 ноября 2018

Вместо использования регулярных выражений вы можете достичь этого с помощью кодов клавиш.

In component.html

 <input class="form-control" (keypress)="omit_number($event)" type="text">

In component.ts

omit_number(event) {
    var key;
    key = event.charCode;  //         key = event.keyCode;  (Both can be used)
    return ((key > 47 && key < 58) || key == 45 || key == 46);
}

Объяснение

   (key > 47 && key < 58) // allows numbers from 1 to 0
    key == 45  // allows minus(-)
    key == 46 //allows Period(.)
...