Попробуйте использовать этот шаблон \ S +. *
Это позволяет пользователю использовать пробел, НО он не будет действителен (если только его пробелы):
ТОЛЬКО ПРОСТРАНСТВА НЕ ВИДЕНЫВ ЭТОМ СЛУЧАЕ!
Этот ответ только для того, чтобы соответствовать вашему первоначальному запросу, но все же я думаю, что обрезка этого для пользователя может быть лучшим пользовательским опытом.
Чтобы использовать директиву триммера, вы можетеиспользуйте это:
import { ElementRef, HostListener } from '@angular/core';
import { Output, EventEmitter, Renderer2 } from '@angular/core';
import { Directive, Input } from '@angular/core';
@Directive({
selector: '[forceTrim]'
})
export class TrimDirective {
@Output() ngModelChange = new EventEmitter();
constructor(
private _renderer: Renderer2,
private _elementRef: ElementRef) {
}
@HostListener("input", ["$event.target.value"])
handleInput(inputValue: any): void {
const valueToProcess = inputValue.trim();
this._renderer.setProperty(this._elementRef.nativeElement, "value", valueToProcess);
this.ngModelChange.emit(valueToProcess);
}
}
и в шаблоне используйте:
<input
type="text"
forceTrim
/>