import {Directive, ElementRef, HostBinding, HostListener} from '@angular/core'; @Directive({ selector: '[patternInput]' }) export class InputPreventionPatternDirective{ @HostListener('keypress', ['$event']) onKeypress(event: KeyboardEvent) { const pattern = new RegExp(this.inputElement.nativeElement.pattern); if(pattern){ if(!pattern.test(event['key'])){ event.preventDefault(); } } return event; } inputElement : ElementRef; constructor(el: ElementRef) { this.inputElement = el; } }