Angular 6 自定义验证不允许空格作为第一个字符?

MED*_*JHA 2 angular angular6

我正在使用反应式文本框,我需要一些自定义验证。

输入框不能有以空格开头的字符。

我正在使用所需的验证器使其成为强制性的,但如果我输入一个空格,它仍然认为它有效(我不想要)。

我怎样才能解决这个问题?

Saj*_*ran 9

您需要创建一个自定义验证器来处理此问题。

new FormControl(field.fieldValue || '', [Validators.required, this.noWhitespace])
Run Code Online (Sandbox Code Playgroud)

将 noWhitespace 方法添加到您的组件/服务

public noWhitespace(control: FormControl) {
    let isWhitespace = (control.value || '').trim().length === 0;
    let isValid = !isWhitespace;
    return isValid ? null : { 'whitespace': true }
}
Run Code Online (Sandbox Code Playgroud)

并在 HTML 中

<div *ngIf="yourForm.hasError('whitespace')">Please enter valid text</div>
Run Code Online (Sandbox Code Playgroud)