pattern
просто проверяет, является ли значение допустимым или нет, оно не влияет на то, что печатает пользователь.Если вы хотите разрешить только числовые значения, а введенные цифры не превышают 5 (как вы говорите в комментарии), то вы можете сделать это:
<input type="text" formControlName="imo" (keypress)="checkValue($event)">
и функцию:
checkValue(event) {
return event.target.value.length === 5 ? event.preventDefault() :
String.fromCharCode(event.charCode).match(/[^0-9]/g) === null
}
StackBlitz
Это фактически заблокирует вход.Если это подходит для неблокирующих значений, вы можете использовать Validators.pattern()
, а затем просто показывать сообщение об ошибке, когда пользователь вводит что-то, чего не следует.