JavaScript Event Paste - Zeichen filtern

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
897
Hallo,

ich habe eine Directive in Angular die verhindern soll, dass bestimmte Zeichen in ein Input Feld geschrieben werden. Für das Keypress Event klappt das auch aber wie mache ich das denn im Paste Event..?

Javascript:
constructor(private el: ElementRef) { }
    @HostListener('keypress', ['$event'])
    onInput(e: any) {
        //return new RegExp(this.regexStr).test(e.key);
        return this.checkASCII(e);
    }

    @HostListener('paste', ['$event']) blockPaste(event: KeyboardEvent) {
        this.validateFields(event);
    }

    validateFields(event) {
        setTimeout(() => {

            this.el.nativeElement.value = ????
            event.preventDefault();

        }, 100);
    }

    checkASCII(event) {
        if (event.charCode <= 128 ||
            event.charCode === 176 ||
            event.charCode === 196 ||
            event.charCode === 214 ||
            event.charCode === 220 ||
            event.charCode === 228 ||
            event.charCode === 246 ||
            event.charCode === 252) {
            return true;
        } else {
            return false;
        }
    }

Könnte natürlich mit einer Schleife die Zeichen durchgehen und ein Replace setzen aber ich bin mir sicher, dass das auch sauberer zu lösen ist.

Vielen Dank
 
Mein Problem ist, dass ich keinen Plan habe von dem Regex welcher beim Match bzw. auch beim Replace benötigt wird.
den kompletten string bekomme ich ja schon.

Javascript:
 this.el.nativeElement.value = this.el.nativeElement.value.replace(regex, '').replace(regex, '');
 
Regex ist immer nützlich, daher bietet es sich an hier mal ein wenig zu lesen und zu spielen: https://regex101.com
 
Vergiss nicht, dass man Inhalte auch per Drag & Drop in ein Textfeld reinbekommt.

So umgehe ich immer die Formulare die meinen, dass man Email oder Passwort beim wiederholen manuell eintippen muss und nicht strg+v verwenden darf. :D
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung und GustlPC
Zurück
Oben