Caso de borde extraño aquí, estoy tratando de encontrar una manera de evitar que se peguen solo espacios o tabulaciones en una forma bastante larga en las áreas de texto requeridas (acortar el formulario es su preocupación), y supongo que, si hay una tabulación o espacio delante del texto real, luego recortarlo para que no sea visible?
Estoy trabajando en algo similar a (dentro de un onPaste (evento) en mi directiva):
const cleanedString = pastedText.replace('/\t/','');y viendo si conduce con una tabulación o un espacio, luego recorte eso:
pastedText.charCodeAt(0) === 9/32, etc..¿Algunas ideas? Gracias, este ha sido complicado sin lanzar $event.preventDefault(); para una pasta válida.
¡Muchas gracias por ver!
Resulta event.preventDefault(); era mi amigo Me salté la expresión regular y solo usé trim();
@HostListener('paste', ['$event']) onPaste(event) { event.preventDefault(); let clipboardData = event.clipboardData; let pastedText = clipboardData.getData('text'); let trimmedText = pastedText.trim(); if (trimmedText.length > 0) { this.formControl.control.setValue(trimmedText); this.formControl.control.setValidators(this.validators); this.formControl.control.updateValueAndValidity(); } else { this.formControl.control.markAsTouched(); } }